$conf, $runtime; function_exists('chdir') AND chdir(APP_PATH); $r = 'mysql' == $conf['cache']['type'] ? website_set('runtime', $runtime) : cache_set('runtime', $runtime); } function runtime_truncate() { global $conf; 'mysql' == $conf['cache']['type'] ? website_set('runtime', '') : cache_delete('runtime'); } register_shutdown_function('runtime_save'); ?>Unable to reset post data in wordpress custom query|Programmer puzzle solving
最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

Unable to reset post data in wordpress custom query

matteradmin8PV0评论

Edit - I already tried wp_reset_query() it doesn't work, the first loop executes as intended but the second loop just jumps to the else and I get not working I am using 2 custom WP_Query loops in one page, the first is to get posts from a certain category, and the second is just getting the posts by dates,

here's the code

            <?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;
            ?>

second loop

<?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 '.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;
            ?>

I am using wp_reset_postdata(); but it doesn't seem to be working.

Edit - I already tried wp_reset_query() it doesn't work, the first loop executes as intended but the second loop just jumps to the else and I get not working I am using 2 custom WP_Query loops in one page, the first is to get posts from a certain category, and the second is just getting the posts by dates,

here's the code

            <?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;
            ?>

second loop

<?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/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;
            ?>

I am using wp_reset_postdata(); but it doesn't seem to be working.

Share Improve this question edited Dec 24, 2018 at 13:19 Sahil Shukla asked Dec 24, 2018 at 9:15 Sahil ShuklaSahil Shukla 36 bronze badges 9
  • please try : wp_reset_query(); – vikrant zilpe Commented Dec 24, 2018 at 9:18
  • also try this code : $wpdb->reset_postdata() – vikrant zilpe Commented Dec 24, 2018 at 9:27
  • Both of them don't work. @vikrantzilpe – Sahil Shukla Commented Dec 24, 2018 at 9:29
  • I don’t see how that function is related to your problem – Milo Commented Dec 24, 2018 at 9:36
  • you set it up again wordpress environment ? – vikrant zilpe Commented Dec 24, 2018 at 10:30
 |  Show 4 more comments

1 Answer 1

Reset to default 0

After reading the documentation for multiple loops in one page here, I only had one WP_Query for both the loops. I stored the ID's of all the posts from the desired category and check for them in the second loop and continue over them. Here's the final code -

first loop

        <?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; ?>

Second Loop

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;
            ?>
Post a comment

comment list (0)

  1. No comments so far