The problem: The code never cleans up after its queries
Your queries are currently missing several things:
- The code never checks that the query found any posts via
if ( $q->have_posts() )
- There are no calls to
wp_reset_postdata
When you call either the_post
or setup_postdata
, you change the global $post
variable. This can cause issues in any code that runs after the loop as the post context is no longer the post of the page, but the last post of the query loop.
Calling wp_reset_postdata
should fix this, but it must only be called if the query found posts. If this isn’t done, then this can cause issues or slowdown in nested loops, and other unanticipated behaviour.
Here is an idealised WP_Query
loop:
$args = array(
// ....
);
$q = new \WP_Query( $args );
if ( $q->have_posts() ) {
while( $q->have_posts() {
$q->the_post();
// display post
}
wp_reset_postdata();
} else {
echo 'no posts found';
}
Related Posts:
- PHP unit testing WordPress?
- Proper use of Output Buffer
- Include a external PHP file into a WordPress Custom Template
- List of all theme customizer control types?
- Is having multiple theme customizers for different pages possible?
- How to remove hardcoded characters from playlists?
- function_exists call in function.php
- Debugging an error: wp_enqueue_style was called incorrectly
- Conditionally loading JavaScript based on the Advanced Custom Fields in the post
- Hide a menu-item and its submenus and display a ‘Log in’ link if the user is logged out
- The best way to customize “nav-menu-template.php” to add if the ‘link_before’ is “checkbox”
- Multiple do_shortcode($content) within one shortcode
- Remove css styles from specific page
- PHP Customization: Taxonomies and Queries, why? [closed]
- Widgets not showing in my custom theme
- What is the fastest way to load PHP functions that are only used in one theme template?
- My Own layout in WooCommerce pages [closed]
- Differences when using the the_time and the_date functions
- How do I access the media settings
- Can’t load WP function into external function
- Implement toggle switch for theme options in settings API
- How do I get current page ID in WordPress customizer file?
- How can i upload images in an admin page?
- Theme Options Page – User Updates Logo
- Wp-login appears White Screen, Error: Cannot modify header information
- Can’t access variable outside for loop
- add custom link to wordpress media gallery modal
- Need Help Fixing My Iframes [closed]
- Two queries for a WP_User_Query search work perfectly apart, but not together
- How to edit widget code to add unique class name to each div?
- Compare the old get_theme_mod($name) to the new get_theme_mod($name) return value
- How do I link a button I created in theme customizer to a function?
- can i fetch a custom metabox data in another page or post type?
- Is the “_s” on this `sprintf(__(‘Page %s’, ‘_s’), max($paged, $page))` just refer to a text domain?
- How do I create my own .php file with a code part and echo it on different pages?
- ‘Post-thumbnails’ feature does not seem to register
- WordPress admin-ajax.php
- How to obtain the current website URL in my theme?
- Syntax error when I try to insert my loop into an unordered list? [closed]
- What exactly do this function declared into functions.php file of a WP theme?
- Admin ToolBar not being displayed at top of site
- Royalty-Free Sliders used in theme development
- Reason to add a name of the theme like (‘menu-1’ => __( ‘Primary’, ‘twentynineteen’ ),) in PHP?
- Separation of presentation and code – WordPress
- Search form does not work in my website
- How to call multiple functions from multiple files into a WordPress page template [closed]
- zip unzip attachments in wordpress
- What file have I to create in my custom WordPress theme to show all the post belonging to a specific category?
- WordPress get_media_embedded
- What is the best way to define constant options for a theme?
- Warning: printf(): Too few arguments in helpers.php file
- Help Fallback (thumbnail)
- get_comments_number() returns 0
- get_page_templates only return templates with “home” in the filename
- Show different website layout if no sidebar added
- Why the dynamic_sidebar() call is putted into an ul tag?
- Need advice on theme customizer and child themes
- How to make sure relative URL works when site is not on root domain?
- Toolbar Hidden in a Virtual Page
- Remove Custom Post Category In WordPress Slug Using .Htaccess
- How do you remove header sitewide from mobile only?
- PHP inside echo HTML
- Uncaught TypeError: extract(): Argument #1 ($array) must be of type array, null given
- Header is not displaying on certain pages of wordpress theme [closed]
- Check if current post in loop is last on current page
- “WARNING: Found @$ in the file __ Possible error suppression is being used
- How to change PHP variables with AJAX request in WordPress
- is_user_logged_in returns false when I access certain pages
- REST API custom endpoint to fetch pages and posts not working
- How to print all the inline styles in the WP_Styles instance together with their keys?
- Looping through dummy posts and showing them in the main index.php
- Exclude category from woocommerce product category list
- Trying to get pagination working on WP_Query() post grid
- Warning: count(): syntax problem of the count () function
- Fix hover images blink
- Customizer: How to Sanitize a Decimal Number Range
- PHP code printed into CSS classes
- Get the image title and alt from custom query
- What syntax is this? “{{post.price}}”
- Theme editing “post thumbnail” help
- How to add Open/Close Toggle button into Twenty Fifteen theme for hiding left sidebar?
- Problems with the WordPress loop [closed]
- How to replace hard-coded list of custom taxonomy terms based on custom field query [closed]
- Where can I find the declaration of `$_wp_theme_features`?
- Calling PHP function doesn’t work in index.php
- Display tab title as ‘blog tagline | blog title’
- WordPress get_post_meta issue
- How to correctly add the featured immage (thumbnails) support in a WP theme? Why I can’t add a featured immage?
- Listing current pages subp page in list items in the sidebar
- How to add button to top of theme customizer?
- Trying to display ads on only a third of posts in a loop. Keep getting Error 500?
- Sidebar doesnt get updated?
- Add CSS class to PHP Statement
- ACF | WooCommerce | Theme Development | How to include a /template-part/ that makes use of ACF’s on a custom WooCommerce homepage?
- Load slideshow.css file only if Slideshow is checked / on
- Predefine Magazine Style Layouts
- Twig+WordPress how to use array arguments inside a function?
- How to store the_post_thumbnail() value in a variable
- Variable ++ in query loop
- functions.php doesn’t load all custom theme assets