Ma page d'accueil personnalisée est configurée pour trier mes messages personnalisés via le champ de date personnalisé avec ce code (mis à jour pour être personnalisé) dans functions.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;
}
}
}
Ce qui est dandy et simple. Maintenant. Je veux que cela fonctionne sur l'ensemble du site. Je veux que les messages sur les pages d'archives, les catégories, etc. soient d'abord triés par le champ de date personnalisé.
Des idées?
J'ai essayé de changer le ' if
' en is_archive()
mais cela n'a eu aucun effet. J'ai essayé <! is_single()>
aussi.
Je suis sûr que ce devrait être quelque chose de simple. Mais je suis nouveau sur php et donc désemparé.
Voici le site , où vous pouvez voir que la page d'accueil est bien triée, mais si vous cliquez sur «poésie» (la seule avec quelques messages), le tri ne fonctionne pas.
Toutes les suggestions seront satisfaites avec beaucoup de joie.
Merci de bien vouloir.
josh_
pour éviter de nommer les colisions.