La mia pagina 'Home' personalizzata è impostata per ordinare i miei post personalizzati tramite il campo data personalizzato con questo codice (aggiornato per essere personalizzato) in funzioni.php:
// sort order for home page
add_action('wp', 'wwgo_check_page');
function wwgo_check_page () {
if (is_page()) {
add_filter('get_previous_post_sort', 'sort_it');
add_filter('get_next_post_sort', 'sort_it');
add_filter('posts_orderby', 'sort_it' );
add_filter('posts_join', 'join_it' );
add_filter('posts_where', 'where_it' );
function sort_it () {
global $wpdb;
return " $wpdb->postmeta.meta_value ASC ";
}
function join_it( $join ) {
global $wpdb;
$join .= " LEFT JOIN $wpdb->postmeta ON($wpdb->posts.ID = $wpdb->postmeta.post_id) ";
return $join;
}
function where_it( $where ) {
global $wpdb;
$where .= "AND $wpdb->postmeta.meta_key = 'deadline' ";
return $where;
}
}
}
Che è dandy e semplice. Adesso. Voglio che funzioni su tutto il sito. Voglio che i post su pagine di archivio, categorie ecc. Vengano ordinati per primi in base al campo data personalizzato.
Qualche idea?
Ho provato a cambiare il " if
" is_archive()
ma quello non ha avuto effetto. Ci ho provato <! is_single()>
anche io .
Sono sicuro che dovrebbe essere qualcosa di semplice. Ma sono nuovo di php e quindi all'oscuro.
Ecco il sito , dove puoi vedere la home page ben ordinata, ma se fai clic su "poesia" (l'unica con pochi post), l'ordinamento non funziona.
Ogni suggerimento sarà accolto con molta gioia.
Grazie gentilmente.
josh_
per evitare colisioni di denominazione.