Je cherche à exclure une catégorie dans Wordpress. Je fais référence à la page Wordpress Codex sur wp_query
, mais le problème est le suivant:
Je ne souhaite donc que les publications exclues si elles sont exclusivement dans la catégorie 1.
Cela peut être fait en obtenant un tableau d'identifiants de catégories que vous voulez montrer. Nous pouvons utiliser get_terms () pour cela:
$taxonomy = array(
'category'
);
$args = array(
'exclude' => array('111'),//id of the category term you want to exclude
'fields' => 'ids'
);
$ct_ids = get_terms( $taxonomy, $args );
Vous pouvez maintenant l'utiliser pour créer votre requête secondaire avec WP_Query à l'aide du paramètre de catégorie category__in
comme ceci:
$args = array(
'category__in' => $ct_ids
);
$scnd_query = new WP_Query( $args );
Si vous voulez par exemple faire cela uniquement pour votre page d’accueil, qu’une requête secondaire personnalisée n’est pas nécessaire, vous pouvez y parvenir en vous connectant à la pre_get_posts action comme celle-ci:
function show_all_but_category_xyz( $query ) {
if ( !is_admin() && $query->is_home() && $query->is_main_query() ) {
$query->set( 'category__in', $ct_ids );
}
}
add_action( 'pre_get_posts', 'show_all_but_category_xyz' );