web-dev-qa-db-fra.com

Modifier la boucle principale dans la page d'archive de taxonomie

Existe-t-il un moyen de modifier la boucle principale dans un modèle de taxonomie unique tout en la laissant intacte dans tous les autres modèles?

Dans ce cas, j'ai un type de publication personnalisé appelé "Événements" qui, à son tour, a une taxonomie personnalisée appelée "Région". Ce que je veux faire, c'est que, au lieu de lister chaque "Evénement" personnalisé chronologiquement par date de publication, je souhaite le commander avec une méta-valeur personnalisée (dans ce cas, event_date).

Je veux seulement faire ceci dans mon template taxonomy-region.php et laisser toute autre instance de la boucle principale intacte.

2
Dean Elliott

Vous pouvez pirater le $query juste avant de récupérer les publications.

function wpdev_156674_pre_get_posts( $query ) {

    if (
        $query->is_main_query()
        && $query->is_tax( 'region' )
    ) {
        // Manipulate $query here, for instance like so
        $query->set( 'orderby', 'meta_value_num' );
        $query->set( 'meta_key', 'event_date' );
        $query->set( 'order', 'DESC' );
    }
}
add_action( 'pre_get_posts', 'wpdev_156674_pre_get_posts' );

Références:

2
tfrommen