无法在WordPress自定义查询中重置POST数据

时间:2018-12-24 作者:Sahil Shukla

编辑-我已经尝试过了wp_reset_query() 它不起作用,第一个循环按预期执行,但第二个循环只跳到else 我得到了not working我正在使用2自定义WP_Query 在一个页面中循环,第一个是从某个类别获取帖子,第二个是按日期获取帖子,

这是密码

            <?php
            $args = array(
                \'post_type\' => \'post\',
                \'post_status\' => \'any\',
                \'category\' => 3,
                \'posts_per_page\' => 4);
            $query_var= new WP_Query($args);
            if ($query_var->have_posts()):
                while ($query_var->have_posts()):
                    $query_var->the_post(); ?>
                    <div class="patta p-4 col-lg-3 col-md-6">
                        <!-- FIX THIS -->
                        <img class="card-img-top"
                             src="<?php the_post_thumbnail(); ?>"
                             alt="<?php the_post_thumbnail_caption() ?>"/>
                        <h4><b><?php the_title(); ?></b><br></h4>
                        <p>
                            <a href="#">Link</a>
                        </p>
                    </div>
                <?php
                endwhile;
                wp_reset_postdata();
            endif;
            ?>
第二个回路

<?php
            $args = array(
                \'post_type\' => \'post\',
                \'post_status\' => \'any\',
                \'orderby\' => \'post_date\',
                \'order\' => \'DESC\',
                \'posts_per_page\' => 4);
            $query_var= new WP_Query($args);
            if ($query_var->have_posts()):
                while ($query_var->have_posts()):
                    $query_var->the_post(); ?>
                    <div class="patta p-4 col-lg-3 col-md-6">
                        <!-- FIX THIS -->
                        <img class="card-img-top"
                             src="<?php if (the_post_thumbnail()): the_post_thumbnail(); else:echo \'https://lamasec.pythonanywhere.com/static/img/vulnhub.png\';endif; ?>"
                             alt="<?php the_post_thumbnail_caption() ?>"/>
                        <h4><b><?php the_title(); ?></b><br></h4>
                        <p>
                            <a href="#">Link</a>
                        </p>
                    </div>
                <?php
                endwhile;
                wp_reset_postdata();
                else: echo \'not working\';
            endif;
            ?>
我正在使用wp_reset_postdata(); 但它似乎不起作用。

1 个回复
最合适的回答,由SO网友:Sahil Shukla 整理而成

阅读一页中多个循环的文档后here, 我只有一个WP_Query 对于两个循环。我存储了所需类别中所有帖子的ID,并在第二个循环中检查它们continue 在他们身上。这是最后的代码-

第一个回路

        <?php
        $args = array(
            \'post_type\' => \'post\',
            \'post_status\' => \'any\',
            \'category\' => 3,
            \'posts_per_page\' => 4);
        $query_var = new WP_Query($args);
        if ($query_var->have_posts()):
        while ($query_var->have_posts()):
            $query_var->the_post();
            $do_not_duplicate[] = $post->ID; ?>
            <div class="patta p-4 col-lg-3 col-md-6">
                <!-- FIX THIS -->
                <img class="card-img-top"
                     src="<?php the_post_thumbnail(); ?>"
                     alt="<?php the_post_thumbnail_caption() ?>"/>
                <h4><b><?php the_title(); ?></b><br></h4>
                <p>
                    <a href="#">Link</a>
                </p>
            </div>
        <?php endwhile; ?>
第二个回路

if (have_posts()):
                while (have_posts()):
                    the_post();
                    if (in_array($post->ID, $do_not_duplicate)) continue;
                    ?>
                    <div class="patta p-4 col-lg-3 col-md-6">
                        <!-- FIX THIS -->
                        <img class="card-img-top"
                             src="<?php the_post_thumbnail(); ?>"
                             alt="<?php the_post_thumbnail_caption() ?>"/>
                        <h4><b><?php the_title(); ?></b><br></h4>
                        <p>
                            <a href="#">Link</a>
                        </p>
                    </div>
                <?php
                endwhile;
                endif;
            endif;
            ?>

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post