web-dev-qa-db-ja.com

カスタム投稿タイプを用語でクエリする方法

これは些細なようですが、うまくいきません。これが私のコードです:

        $args = array(
            'numberposts'     => -1,
            'eventcategory'   => 'Nice-events',
            'post_type'       => 'event',
            'post_status'     => 'publish' 
        );

        var_dump(get_posts($args));

ご覧のとおり、私の分類法はeventcategoryで、用語はNice-eventsです。実際には50を超える用語があり、Nice-eventsの代わりにどの用語を使用しても、常に同じ結果が得られます。すべての投稿。そのため、この用語は無視されていて、その理由はわかりません。

2
jilseego

独自の引数を作成することはできません-'category'引数を分類名に置き換えるのではなく、'tax_query'を使用してください。

get_postsのコーデックスの「分類パラメーター」セクションを参照してください

$args = array(
    'post_type' => 'event',
    'post_status' => 'publish',
    'tax_query' => array(
        array(
            'taxonomy' => 'eventcategory',
            'field' => 'slug',
            'terms' => 'Nice-events',
        ),
    ),
);


$your_query = get_posts( $args );

// do something with $your_query

または、 WP_Query クラスを使用することもできます。

$args = array(
    'posts_per_page' => -1,
    'post_type' => 'event',
    'post_status' => 'publish',
    'tax_query' => array(
        array(
            'taxonomy' => 'eventcategory',
            'field' => 'slug',
            'terms' => 'Nice-events'
        ),
    ),
);


$your_query = new WP_Query( $args );

// do something with $your_query
8
Johannes Pille