0

質問と回答を整理するために、FAQとカスタム分類のカスタム投稿タイプを作成しました。

また、次のコードを使用してFAQを表示する単一ページテンプレートを作成しました

$terms = get_terms(
    'faq_categories',
    array(
        'orderby'   =>  'name',
        'order'     =>  'ASC'
    )
);

foreach($terms as $term)
{
    ?>
    <h3><?php echo $term->name; ?></h3>
    <?php

    $q_args = array(
        'post_type'         =>  'faq',
        'tax_query'         =>  array(
            'taxonomy'  =>  'faq_categories',
            'field'     =>  'slug',
            'terms'     =>  $term->slug
        ),
        'posts_per_page'    =>  -1
    );

    wp_reset_postdata();
    wp_reset_query();

    $ans    =   new WP_Query($q_args);

    while($ans->have_posts())
    {
        $ans->the_post();

        ?>
        <h5><?php echo the_title(); ?></h5>
        <?php
    }
}

私の問題は、質問のタイトルを取得している間、質問がFAQカテゴリごとにグループ化されておらず、各カテゴリの下で利用可能なすべての質問が繰り返し取得されることです。

結果は次のようになります。

Sale [FAQ Category]
    How to buy? [FAQ Question]
    What is the cost? [FAQ Question]
    How can I contact you? [FAQ Question]
    What is your address? [FAQ Question]
Contacts [FAQ Category]
    How to buy? [FAQ Question]
    What is the cost? [FAQ Question]
    How can I contact you? [FAQ Question]
    What is your address? [FAQ Question]

また、WP_Queryループの前後にwp_reset_postdate ()wp_reset_query()を試してみましたが、運が悪かったのでそれらも削除しようとしました。

その問題を解決する方法について何かアイデアはありますか?

よろしくメリアーノスニコス

4

1 に答える 1

1

tax_queryは、配列の配列を受け入れます。

$q_args = array(
    'post_type'         =>  'faq',
    'tax_query'         =>  array(
        array(
            'taxonomy'  =>  'faq_categories',
            'field'     =>  'slug',
            'terms'     =>  $term->slug
        )
    ),
    'posts_per_page'    =>  -1
);

または、クエリを書き直してください。tax_queryは実際には必要ありません。

$ans = new WP_Query("post_type=faq&faq_categories=$term->slug&posts_per_page=-1");
于 2012-11-16T17:45:15.147 に答える