Don't iterate over $wp_query->posts
in update_post_thumbnail_cache()
if it is empty. Adds unit tests.
Props SergeyBiryukov, for the original patch. Fixes #26321. git-svn-id: https://develop.svn.wordpress.org/trunk@27166 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
94a1bb0485
commit
fd8d6cddcd
@ -57,7 +57,7 @@ function update_post_thumbnail_cache( $wp_query = null ) {
|
||||
if ( ! $wp_query )
|
||||
$wp_query = $GLOBALS['wp_query'];
|
||||
|
||||
if ( $wp_query->thumbnails_cached )
|
||||
if ( $wp_query->thumbnails_cached || ! $wp_query->posts )
|
||||
return;
|
||||
|
||||
$thumb_ids = array();
|
||||
@ -69,7 +69,7 @@ function update_post_thumbnail_cache( $wp_query = null ) {
|
||||
if ( ! empty ( $thumb_ids ) ) {
|
||||
_prime_post_caches( $thumb_ids, false, true );
|
||||
}
|
||||
|
||||
|
||||
$wp_query->thumbnails_cached = true;
|
||||
}
|
||||
|
||||
|
30
tests/phpunit/tests/post/thumbnails.php
Normal file
30
tests/phpunit/tests/post/thumbnails.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
/**
|
||||
* @group post
|
||||
* @group thumbnails
|
||||
*/
|
||||
class Tests_Post_Thumbnails extends WP_UnitTestCase {
|
||||
/**
|
||||
* @ticket 26321
|
||||
*/
|
||||
function test_update_post_thumbnail_cache() {
|
||||
update_post_thumbnail_cache();
|
||||
|
||||
$this->assertFalse( $GLOBALS['wp_query']->thumbnails_cached );
|
||||
|
||||
$this->factory->post->create_many( 3 );
|
||||
$GLOBALS['wp_query'] = new WP_Query( array( 'post_type' => 'post' ) );
|
||||
|
||||
update_post_thumbnail_cache();
|
||||
|
||||
$this->assertTrue( $GLOBALS['wp_query']->thumbnails_cached );
|
||||
|
||||
$q = new WP_Query();
|
||||
update_post_thumbnail_cache( $q );
|
||||
$this->assertFalse( $q->thumbnails_cached );
|
||||
|
||||
$p = new WP_Query( array( 'post_type' => 'post' ) );
|
||||
update_post_thumbnail_cache( $p );
|
||||
$this->assertTrue( $p->thumbnails_cached );
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user