私はnews
と呼ばれるカテゴリによってAlumni
と呼ばれるカスタム投稿タイプをID=160
でクエリしようとします。
そのような引数を使用すると、結果として、すべてのカスタム投稿なしAlumni
カテゴリが表示されます。
$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; ?>
しかし、category__not_in
をcategory__in
に変更すると空のリストが表示されますが、最初の結果とは反対のことが予想されます。どこで間違いを犯したのか、本当にわかりません。
また、私は代わりにcat
とcategory_name
を使ってみました、そして、私は異なったカテゴリーで試しましたが、結果はいつも同じでした。
私の研究では、私は'tax_query'
に出くわしましたが、それをうまく動かすこともできません。ドキュメントは私にとってはっきりしていません。
これらのカスタム分類法または通常の分類法はありますか。
それらが単なるカテゴリーであるならば、あなたは使うべきです:
$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; ?>
あなたがIDでそれを使用したい場合
つかいます:
'cat' => 160
の代わりに
'category_name' => 'Alumni'
あなたが配列の中でこのようなものを使ってみたことがありますか。
'taxonomy' => 'your_taxonomy_name',
それとも何か:
'tax_query' => array(
'taxonomy' => 'your_taxonomy_name',
'terms' => 'Alumni',
'field' => 'slug',
'include_children' => true,
),
カテゴリのようなカスタム投稿タイプの分類名を登録してから、新しい投稿を追加したときに各投稿にカテゴリを割り当てます。これがコードの例です
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);
}
このカテゴリ名の投稿を取得するためのクエリを追加します
$cat_name = single_cat_title;
$args = array( 'category_name' => $cat_name, 'posts_per_page' => 12, 'order'=> 'ASC', 'post_type' => 'news', 'paged' => $paged);
すべての作業が完了しました。幸運