web-dev-qa-db-fra.com

Trier par clé méta sur la page d'archive

J'essaie de trier une page d'archive en utilisant une valeur de clé méta (qui se trouve être un horodatage Unix). Actuellement, j'ai les publications répertoriées sur la page par leur date de création WordPress. Je souhaite utiliser la clé méta, qui est une date différente de la date de création WP.

Le code est assez simple à ce stade, il suffit d’utiliser The Loop pour afficher les publications à l’aide d’un modèle:

<?php

while (have_posts()) : the_post();


Template code here


endwhile;

?>

Comment puis-je afficher les publications par les dates de méta-valeur au lieu de la date de création WP?

1
Moose

Utilisez pre_get_posts pour modifier la requête principale avant son exécution. L'action s'exécute sur chaque requête. Utilisez les balises conditionnelles pour cibler des requêtes spécifiques.

function wpd_sort_by_meta( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'meta_key', 'your_meta_key' );
        $query->set( 'orderby', 'meta_value_num' );
    }
}
add_action( 'pre_get_posts', 'wpd_sort_by_meta' );
4
Milo