Actuellement, les articles de mon site Web sont classés par ordre alphabétique par titre:
/* Order Posts Alphabetically */
function prefix_modify_query_order( $query ) {
if ( is_main_query() ) {
$query->set( 'orderby', 'title' );
$query->set( 'order', 'ASC' );
}
}
add_action( 'pre_get_posts', 'prefix_modify_query_order' );
Maintenant, je veux trier les articles alphabétiquement par titre (croissant), mais aussi par date (décroissant).
Comme cet exemple:
Changer le paramètre orderby
en $query->set( 'orderby', 'date title' );
ne résout pas mon problème, car je dois d'abord afficher les publications les plus récentes.
J'apprécierais toutes les autres idées.
Vous pouvez passer un tableau à query
comme dans l'exemple suivant décrit dans le Codex shows:
$args = array(
'orderby' => array( 'title' => 'DESC', 'menu_order' => 'ASC' )
);
$query = new WP_Query( $args );
Dans votre cas, cela ressemblera à ceci:
/* Order Posts Alphabetically */
function prefix_modify_query_order( $query ) {
if ( is_main_query() ) {
$args = array( 'post_date' => 'DESC', 'title' => 'ASC' );
$query->set( 'orderby', $args );
}
}
add_action( 'pre_get_posts', 'prefix_modify_query_order' );
Si vous voulez que post_date
soit utilisé comme filtre principal, vous devez modifier sa position dans le tableau. Le code interroge désormais tous les articles dans l'ordre alphabétique, en commençant par le plus récent, post_date.