J'ai créé une nouvelle catégorie avec l'ID 57, comment puis-je exclure cette catégorie de la page d'accueil/du blog, puis répertorier les publications de cette catégorie sur sa propre page?
voici à quoi ressemble mon index.php
<?php
$popular_count = 1;
query_posts( array( 'orderby' => 'comment_count','posts_per_page' => 6 ) );
if ( have_posts() ) : while ( have_posts() ) : the_post();
?>
alors, comment ajouter ce peu de code est un peu déroutant
Plutôt que d'effectuer une requête distincte, pour exclure un terme de catégorie (ou de toute autre taxonomie), vous pouvez vous connecter à pre_get_posts
:
add_action('pre_get_posts', 'wpse41820_exclude_cat_from_front_page');
function wpse41820_exclude_cat_from_front_page( $query ){
if( $query->is_main_query() && is_front_page() ){
$tax_query = array(array(
'taxonomy' => 'category',
'field' => 'id',
'terms' => array( 57 ),
'operator' => 'NOT IN'
));
$query->set('tax_query',$tax_query);
}
return $query;
}
Pour exclure un slug, modifiez le $tax_query
en conséquence:
$tax_query = array(array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array( 'term-slug' ),
'operator' => 'NOT IN'
));
Utilisez une requête personnalisée pour les deux.
<?php if (have_posts()) :
$args = array(
'orderby' => 'comment_count',
'posts_per_page' => 6,
'cat' => -57,
);
$my_query = new WP_Query($args);
while ($my_query->have_posts()) : $my_query->the_post(); ?>
Le signe négatif devant la catégorie dénote une exclusion.
J'ai fait la modification pour travailler avec le code que vous avez fourni.