J'essaie d'interroger le type de message personnalisé appelé news
par une catégorie appelée Alumni
avec ID=160
.
En conséquence, lorsque j'utilise de tels arguments, j'obtiens tous mes messages personnalisés sans Alumni
catégorie:
$args = array(
'posts_per_page' => -1,
'post_type' => 'news',
'orderby' => 'date',
'order' => 'DESC',
'category__not_in' => 160
);
$loop = new WP_Query( $args );
<?php while ( $loop->have_posts() ) : $loop->the_post();?>
...
<?php endwhile; ?>
Cependant, changer category__not_in
en category__in
donne une liste vide, mais je m'attendrais à l'inverse du résultat initial. Je ne peux pas vraiment comprendre où je me suis trompé.
De plus, j'ai essayé d'utiliser cat
et category_name
à la place et j'ai joué avec différentes catégories mais les résultats étaient toujours les mêmes.
Lors de mes recherches, je suis tombé sur 'tax_query'
mais je ne peux pas le faire fonctionner aussi bien. La documentation n'est pas tout à fait claire pour moi.
S'agit-il de taxonomies personnalisées ou de catégories régulières?
si ce ne sont que des catégories, vous devriez utiliser:
$args = array(
'posts_per_page' => -1,
'post_type' => 'news',
'orderby' => 'date',
'order' => 'DESC',
'category_name' => 'Alumni'
);
$loop = new WP_Query( $args );
<?php while ( $loop->have_posts() ) : $loop->the_post();?>
...
<?php endwhile; ?>
si vous voulez l'utiliser par identifiant
utilisation:
'cat' => 160
au lieu de
'category_name' => 'Alumni'
Avez-vous essayé d'utiliser quelque chose comme ceci dans le tableau, Avait un problème similaire plus tôt que cela a résolu.
'taxonomy' => 'your_taxonomy_name',
Ou quelque chose comme:
'tax_query' => array(
'taxonomy' => 'your_taxonomy_name',
'terms' => 'Alumni',
'field' => 'slug',
'include_children' => true,
),
Enregistrez le nom de taxonomie du type d'article personnalisé comme des catégories, puis attribuez une catégorie à chaque article lorsque vous ajoutez un nouvel article. Voici l'exemple du code
add_action( 'init', 'news_my_taxonomy');
function news_my_taxonomy(){
// custom post type taxonomies
$labels = array(
'name' => 'Categories',
'singular_name' => 'Category',
'add_new' => 'Add Category',
'add_new_item' => 'Add New Category',
'all_items' => 'All Categories',
'edit_item' => 'Edit Item',
'new_item' => 'New Item',
'view_item' => 'View Item',
'update_item' => 'Update Category',
'search_items' => 'Search Categories',
'not_found' => 'No record found',
'not_found_in_trash' => 'No items found in trash',
'parent_item_colon' => 'Parent Item',
'menu_name' => 'Categories'
);
$args = array(
'labels' => $labels,
'hierarchical' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'news_category'),
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
);
register_taxonomy('news_category', array('news'), $args);
}
et ajoutez la requête pour obtenir les publications avec ce nom de catégorie
$cat_name = single_cat_title;
$args = array( 'category_name' => $cat_name, 'posts_per_page' => 12, 'order'=> 'ASC', 'post_type' => 'news', 'paged' => $paged);
Tout le travail est fait. Bonne chance