Wordpress:显示与我创建的自定义分类法绑定的所有帖子...

时间:2012-07-24 02:35:36

标签: wordpress

我需要显示我为自定义帖子类型创建的所有类别,然后在每个类别中我需要循环所有与该类别关联的帖子。

我尝试以多种不同的方式构建我的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;
?>

1 个答案:

答案 0 :(得分: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;
        }
        ?>