web-dev-qa-db-ja.com

カスタム分類法によるカスタム投稿タイプの照会(カテゴリスラッグ)

私はいくつかの関連した解決策に従った。しかし、私はまだ問題に直面しています。分類法(カテゴリ)でカスタム投稿クエリに次のコードを適用しました。しかし、うまくいきません。私は私の問題は「用語」だと思います。

$terms = get_terms('service_cat');
$services_post = new WP_Query(array(
    'post_type'         => 'service',
    'posts_per_page'    => -1,
    'tax_query' => array(
        array(
            'taxonomy' => 'service_cat',
            'field' => 'cat1',
            'terms' => $terms
        )
    ),
));

私はまた、次のコードで試してみました

$services_post = new WP_Query(array(
            'post_type'         => 'service',
            'posts_per_page'    => -1,
            'category_name'     => 'cat1' 
))
1
Md Jwel Miah

OPのコメントに質問を反映するように編集されました。

tax_query 配列の内容は正確ではありません。slugでクエリしているので、個々の分類法クエリのfieldパラメータは"slug"であるべきです。

あなたは現在、基本的にすべてのサービスカテゴリからのすべてのservice投稿についてクエリしています(get_termsはオブジェクトを返すので、それでもそうではありません)。

投稿をロードする元となる単一の(または複数の)特定の用語を照会するには、terms配列に用語を指定します。それに応じてtax_queryが解析されます。

$services_post = new WP_Query( array(
    'post_type'         => 'service',
    'posts_per_page'    => -1,
    'tax_query' => array(
        array(
            'taxonomy' => 'service_cat',
            'field' => 'slug',
            'terms' => array( 'cat1' ) // Array of service categories you wish to retrieve posts from
        )
    ),
) );

ちなみに、投稿タイプserviceの投稿をすべて取得したいと思います。

1
engelen