web-dev-qa-db-fra.com

get_query_var () ne fonctionne pas dans pre_get_posts

J'utilise le crochet pre_get_posts pour commander la requête principale sur toutes mes pages de type de publication/taxonomie personnalisées à l'aide d'une méta valeur personnalisée. Dans le cadre de cette logique, j'essaie de déterminer quelle taxonomie est actuellement affichée à l'aide de get_query_var('taxonomy'). Toutefois, peu importe ce que j'essaie, il renvoie toujours une chaîne vide:

function sort_query($query)
    ...
    if (is_tax()){
        ...
        echo get_query_var('taxonomy'); // Empty
        echo get_query_var($query->query_vars['taxonomy']); // Empty
        ...
    }
}
add_action('pre_get_posts', 'sort_query');

Toute aide serait grandement appréciée. Merci!

5
dSquared

Avez-vous essayé cela?

function sort_query($query)
    if ($query->is_tax() && $query->is_main_query()){
        echo $query->query_vars['taxonomy']; 
        $query->set( 'orderby', 'post_title' );
        $query->set( 'order', 'ASC' );
        //do other stuff
    }
}
add_action('pre_get_posts', 'sort_query');

Codage heureux,

Kuchenundkakao

2
kuchenundkakao