J'essaie d'utiliser pre_get_posts pour définir des publications par page pour un seul terme dans une taxonomie. Une des choses qui me déconcerte, c'est de définir le terme auquel appliquer le pre_get_posts.
Voici mon code:
function filter_press_tax( $query ){
if( $query->query_vars['tax_query']['taxonomy'] == 'press' && $query->query_vars['tax_query']['terms'][0] == 'press' ):
$query->query_vars['posts_per_page'] = 5;
return;
endif;
}//end filter_press_tax
Je ne comprends pas très bien comment accéder à la taxonomie et au terme dans la requête $. Oui, la taxonomie et le terme ont le même nom. Est-ce une mauvaise idée? Je n'ai pas de requête personnalisée configurée sur le modèle taxonomy-press-press.php pour le paramètre 'tax_query'
Toute aide est appréciée! Merci
Vous êtes presque là mon pote. Essayez ceci cependant.
<?php
add_action('pre_get_posts', 'filter_press_tax');
function filter_press_tax( $query ){
if( $query->is_tax('press') && $query->has_term('press')):
$query->set('posts_per_page', 5);
return;
endif;
}
?>
Vous pouvez utiliser n'importe quel argument conditionnel ou tout argument pouvant être passé à WP_Query
pour tester votre condition ou définir une nouvelle valeur via pre_get_posts
. Essayez également $query->get('taxonomy')
/$query->get('term')
. Et vérifiez this for $query
et définissez les méthodes.