Articles of wp reset postdata

Optimizing the blog loop

I’ve got such post loop: <?php global $post; $post = $post_object; setup_postdata( $post ); $paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1; query_posts(array( ‘post_type’ => ‘post’, // You can add a custom post type if you like ‘paged’ => $paged, ‘posts_per_page’ => 1 )); if ( have_posts() ) : ?> <?php while ( have_posts() ) : […]

Do I need to reset the loop in this code?

I use the code below, added to a template, to display random posts. <ul> <?php $posts = get_posts(‘orderby=rand&numberposts=5’); foreach($posts as $post) { ?> <li><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></li> <?php } ?> </ul> Do I need to reset, presumably by changing <?php } ?> to <?php } wp_reset_postdata(); ?> And does the need to reset […]

How to trigger error when not using wp_reset_postdata();? Why use it if the loop works without it?

I have two loops in my code, why do I need to use wp_reset_postdata(); after each if it doesnt make any difference? The definition: After looping through a separate query, this function restores the $post global to the current post in the main query. So if I create a query that queries post_types, or categories […]

How to reset post data properly

I have this piece of code that I am calling within the loop to get image metadata ( title/caption and description ). It works fine but it only works for the first post in the loop. So I assume it needs to be reset. From looking here I think wp_rest_postdata(); is the right way to […]

Set post number to single posts

I have a function that I am using to number posts in a category. It is in my function.php and looks like this: function get_episode_number($postID){ $options = get_option(‘theme-opts’); $opts_cat = isset($options[‘opts-category’]) ? $options[‘opts-category’] : ”; /* passes category from theme options */ $postNumberQuery = new WP_Query(array ( ‘orderby’ => ‘date’, ‘order’ => ‘ASC’, ‘post_type’ => […]

Is resetting post data necessary with custom WP_CLI commands?

Is it strictly necessary to call wp_reset_postdata(); in a WP CLI command? I am doing it out of habit but just wondered if the $post object needed to be reset.

wp_reset_postdata() and wp_reset_query() inside shortcode are not working to reset original page query

I’m implementing a form for a frontend post with a shortcode. The form is processed in the same function, reloading the page: function adicionar_ninhada(){ $user_id = get_current_user_id(); if (isset($_POST[‘adicionar_cachorro’])){ wp_verify_nonce( $_POST[‘_wpnonce’], ‘brg_add_dog’.$user_id ); $args = array( ‘post_title’ => $_POST[‘raca’] . ” nascidos em ” . $_POST[‘nascimento’] , ‘post_content’ => ”, ‘post_status’ => ‘publish’, ‘post_author’ => […]

wp_reset_postdata does not work for category page

I have a category template which displays some posts and some content generated by a plugin template, which uses the_permalink() to refer to the current url. The category template looks like this (category.php): <?php $categoryQuery = get_the_category(); ?> <?php $parentCategory = get_term_by(‘id’, $categoryQuery[0]->parent, ‘category’) ?> <?php if ($parentCategory->slug !== ‘teams’ && $categoryQuery[0]->slug !== ‘teams’) { […]

reset to main loop doesnt work

I open the administration page for my custom post type. So the url is: wp-admin/post.php?post=39&action=edit When I do the following Code, the output is of course 39: <?php global $post; echo $post->ID; ?> Now I added a new WP_Query and loop over the result, because I need Data from another post. <?php global $post; echo […]

Why is wp_reset_postdata() restarting the loop from the first post?

I’ve used the second-last example showed here: https://github.com/scribu/wp-posts-to-posts/wiki/each_connected The only difference is that I’ve put the_title after echoing the connected posts. So my code is: <?php $my_query = new WP_Query( array( ‘post_type’ => ‘movie’ ) ); p2p_type( ‘movies_to_actors’ )->each_connected( $my_query, array(), ‘actors’ ); p2p_type( ‘movies_to_locations’ )->each_connected( $my_query, array(), ‘locations’ ); while ( $my_query->have_posts() ) : […]