使用ACF生成分类法引导选项卡

时间:2016-08-31 20:10:16

标签: wordpress advanced-custom-fields bootstrap-tabs

我的双环查询在某些方面做得不好,而且我不确定它究竟是什么。基本上,我已经在我的博客页面上使用ACF提供了一个Repeater字段,我可以在其中选择要在我的标签中显示的类别/分类。所以它可以很好地提取选项卡的名称,但我似乎无法在那里生成任何内容。有人建议我需要添加" reset_rows();",我这样做,但这似乎是让页面永远加载,并且仍然没有创建任何实际内容。

这是我的循环。我们将非常感谢您提供的任何帮助。

<!-- Nav Tabs -->
<ul  class="nav nav-pills">
    <?php if (have_rows('home_categories')) {
        $i = 0;
        while (have_rows('home_categories')) {
            the_row();
            $term = get_sub_field('categories'); ?>
    <li class="<?php if ($i == 0) { echo ' active'; }?>"> 
        <a href="#<?php echo $term->name; ?>" data-toggle="tab"><?php echo $term->name; ?></a>
    </li>
        <?php $i++;
        }
    } ?>
</ul>

<!-- Tab Content -->
<div class="tab-content clearfix">
    <?php if (have_rows('home_categories')) {
        $i = 0;
        while (have_rows('home_categories')) {
            the_row();

            $args = array(
                'post_type' => 'post',
                'tax_query' => array(
                    array(
                        'taxonomy' => $term->taxonomy,
                        'terms' => array($term_id)
                    )
                ),
                'posts_per_page' => 5,
                'orderby' => 'date',
                'order' => 'ASC',
            );
            $post = new WP_Query( $args );
            while( $post->have_posts() ) : $post->the_post();

            $term = get_sub_field('categories'); ?>

                <div class="tab-pane fade<?php if ($i == 0) { echo ' in active'; }?>" id="<?php echo $term->name; ?>">
                    <?php the_post_thumbnail('thumbnail', array('class' => 'img-responsive img-thumbnail')); ?>
                    <a href="<?php echo get_permalink(); ?>"><h3><?php the_title(); ?></h3></a>
                    <?php the_excerpt(); ?>
                </div>
            <?php endwhile;
        }
        $i++;
    }
        wp_reset_postdata(); ?>
</div>

1 个答案:

答案 0 :(得分:0)

好吧,我一直在努力,并请其他程序员朋友帮忙搞清楚。我们只是用foreach而不是while重写了标签内容区域,现在看起来效果很好:

<!-- Nav Tabs -->
<ul  class="nav nav-pills">
    <?php if (have_rows('home_categories')) {
        $i = 0;
        while (have_rows('home_categories')) {
            the_row();
            $term = get_sub_field('categories'); ?>
    <li class="<?php if ($i == 0) { echo ' active'; }?>"> 
        <a href="#tab-pane-<?php echo $i; ?>" data-toggle="tab"><?php echo $term->name; ?></a>
    </li>
        <?php $i++;
        }
    } ?>
</ul>

<!-- Tab Content -->
<div class="tab-content clearfix">
    <?php 

        $home_categories = get_field("home_categories");
    //  print_r($home_categories);

        foreach($home_categories as $key => $home_cat) {


            $term_id = $home_cat['categories']->term_id;
            $term_name = $home_cat['categories']->name;

            ?>
            <div class="tab-pane fade<?php if ($key == 0) { echo ' in active'; }?>" id="tab-pane-<?php echo $key; ?>">
            <?php


            $args = array(
                'post_type' => 'post',
                'tax_query' => array(
                    array(
                        'taxonomy' => $term->taxonomy,
                        'terms' => array($term_id)
                    )
                ),
                'posts_per_page' => 5,
                'orderby' => 'date',
                'order' => 'ASC',
            );
            $query = new WP_Query( $args );

            foreach($query->posts as $post) {

                ?>

                    <a href="<?php echo get_permalink($post->ID); ?>"><?php echo get_the_post_thumbnail($post->ID, 'thumbnail', array('class' => 'img-responsive img-thumbnail')); ?></a>
                    <a href="<?php echo get_permalink($post->ID); ?>"><h3><?php echo get_the_title($post->ID); ?></h3></a>
                    <?php the_excerpt(); ?>
                <?php


            }

            ?>
            </div>
            <?php   



        }           ?>

</div>

因此,如果其他人感兴趣,那就是最终如何完成。