0

カスタム投稿タイプ用に作成したすべてのカテゴリを表示する必要があり、各カテゴリ内で、そのカテゴリに関連付けられているすべての投稿をループする必要があります。

WP_Query をさまざまな方法で構築しようとしましたが、まったく機能しません。

これが私が今持っているコードです:

$categories = get_categories('taxonomy=faqcat&order=DESC');
foreach ($categories as $cat) {

    // loop through all  posts tied to category here
}

更新されたコード..まだ機能しません..各カテゴリに同じ投稿が表示され続けます。

<?php
$categories = get_categories('taxonomy=faqcat&order=DESC');
foreach ($categories as $cat) :

    echo '<h1>' . $cat->name . ' (' . $cat->cat_ID . ' )</h1>';
    $q = new WP_Query(array('cat_ID' => $cat->cat_ID, 'post_type' => 'faq', 'tax_query' => array('taxonomy' => 'faqcat')));
    if ($q->have_posts()) : while ($q->have_posts()) : $q->the_post();
      echo $post->ID;      

    ?>
            <pre> <B><?php the_title(); ?></b></pre>
            <p><?php the_content(); ?></p>
            <br/>
        <?php endwhile;
    else:
        ?>
        <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
    <?php
    endif;
endforeach;
?>
4

1 に答える 1

1

修正は次のとおりです。

    <!--faq page -->
    <div class="faq">
        <?php get_template_part('./template/global/breadcrumbs'); ?>
        <h3><span><?php the_title(); ?></span></h3>
        <?php
        $categories = get_categories('taxonomy=faqcat&order=DESC');
        foreach ($categories as $cat) {
            $i = 0;
            ?>
            <div class="faq-title">
                <h2><?php echo $cat->name; ?></h2>
            </div>
            <?php
            $answers = new WP_Query(array('post_type' => 'faq', 'tax_query' => array(array('taxonomy' => 'faqcat', 'field' => 'id', 'terms' => $cat->term_id,),),));
            if ($answers->have_posts()) : while ($answers->have_posts()) : $answers->the_post();
                    $i++;
                    ?>
                    <div class="faq-post" id="faq-<?php echo $i; ?>"> <span class="close-tab"><?php the_title(); ?></span>
                        <div class="faq-post-detail">
                            <?php the_content(); ?>  
                        </div>
                    </div>

                    <?php
                endwhile;
            else:
                ?>
                <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
            <?php endif;
        }
        ?>
于 2012-07-25T02:06:43.390 に答える