0

ここでの二重ループ クエリでは、何かがうまく機能していません。それが正確に何であるかはわかりません。基本的に、私は ACF を使用してブログ ページにリピーター フィールドを提供し、タブに表示するカテゴリ/タクソノミーを選択できるようにしました。そのため、タブの名前をうまく引き込んでいますが、そこにコンテンツを生成できないようです。「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>
4

1 に答える 1

0

さて、私はこれに取り組み続け、他のプログラマーの友人に助けを求めました。while の代わりに foreach を使用してタブのコンテンツ領域を書き直したところ、非常にうまく機能するようになりました。

<!-- 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>

したがって、他の誰かが興味を持っている場合に備えて、それが最終的に達成された方法です.

于 2016-08-31T22:02:00.047 に答える