web-dev-qa-db-ja.com

カテゴリによるカスタム投稿のクエリ

私は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_incategory__inに変更すると空のリストが表示されますが、最初の結果とは反対のことが予想されます。どこで間違いを犯したのか、本当にわかりません。

また、私は代わりにcatcategory_nameを使ってみました、そして、私は異なったカテゴリーで試しましたが、結果はいつも同じでした。

私の研究では、私は'tax_query'に出くわしましたが、それをうまく動かすこともできません。ドキュメントは私にとってはっきりしていません。

1
bdobry

これらのカスタム分類法または通常の分類法はありますか。

それらが単なるカテゴリーであるならば、あなたは使うべきです:

$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'
1
rudtek

あなたが配列の中でこのようなものを使ってみたことがありますか。

'taxonomy' => 'your_taxonomy_name',

それとも何か:

    'tax_query' => array(
        'taxonomy' => 'your_taxonomy_name',
        'terms' => 'Alumni',
        'field' => 'slug',
        'include_children' => true,
),
0
Randomer11

特定のカテゴリのカスタム投稿タイプの投稿を取得するには、カスタム分類法を使用します。

カテゴリのようなカスタム投稿タイプの分類名を登録してから、新しい投稿を追加したときに各投稿にカテゴリを割り当てます。これがコードの例です

  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);
}

それから

分類テンプレートページ 'taxonomy-news_category.php'を作成します。

このカテゴリ名の投稿を取得するためのクエリを追加します

   $cat_name = single_cat_title;
   $args = array( 'category_name' => $cat_name, 'posts_per_page' => 12, 'order'=> 'ASC', 'post_type' => 'news', 'paged' => $paged);

すべての作業が完了しました。幸運

0
HeroWeb512