Media: Add new functions, get_the_post_thumbnail_url() and the_post_thumbnail_url().

Adds unit tests.

Props dipesh.kakadiya, swissspidy, atomicjack.
Fixes #33070.


git-svn-id: https://develop.svn.wordpress.org/trunk@34373 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Scott Taylor 2015-09-22 04:14:15 +00:00
parent 3c0ecff16e
commit 1352d3473a
2 changed files with 73 additions and 0 deletions

View File

@ -170,3 +170,30 @@ function get_the_post_thumbnail( $post = null, $size = 'post-thumbnail', $attr =
*/
return apply_filters( 'post_thumbnail_html', $html, $post->ID, $post_thumbnail_id, $size, $attr );
}
/**
* Return the post thumbnail URL.
*
* @since 4.4.0
*
* @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global `$post`.
* @param string|array $size Optional. Registered image size to retrieve the source for or a flat
* array of height and width dimensions. Default 'post-thumbnail'.
* @return string Post thumbnail URL or empty string.
*/
function get_the_post_thumbnail_url( $post = null, $size = 'post-thumbnail' ) {
$image = wp_get_attachment_image_url( get_post_thumbnail_id( $post ), $size );
return isset( $image ) ? $image : '';
}
/**
* Display the post thumbnail URL.
*
* @since 4.4.0
*
* @param string|array $size Optional. Registered image size to retrieve the source for or a flat
* array of height and width dimensions. Default 'post-thumbnail'.
*/
function the_post_thumbnail_url( $size = 'post-thumbnail' ) {
echo get_the_post_thumbnail_url( null, $size );
}

View File

@ -110,4 +110,50 @@ class Tests_Post_Thumbnail_Template extends WP_UnitTestCase {
$this->assertEquals( $expected, $actual );
}
/**
* @ticket 33070
*/
function test_get_the_post_thumbnail_url() {
$this->assertEquals( '', get_the_post_thumbnail_url() );
$this->assertEquals( '', get_the_post_thumbnail_url( $this->post ) );
set_post_thumbnail( $this->post, $this->attachment_id );
var_dump( get_the_post_thumbnail_url( $this->post ) );
$this->assertEquals( '', get_the_post_thumbnail_url() );
$this->assertEquals( wp_get_attachment_url( $this->attachment_id ), get_the_post_thumbnail_url( $this->post ) );
$GLOBALS['post'] = $this->post;
$this->assertEquals( wp_get_attachment_url( $this->attachment_id ), get_the_post_thumbnail_url() );
}
/**
* @ticket 33070
*/
function test_the_post_thumbnail_url() {
$GLOBALS['post'] = $this->post;
ob_start();
the_post_thumbnail_url();
$actual = ob_get_clean();
$this->assertEmpty( $actual );
ob_start();
the_post_thumbnail_url();
$actual = ob_get_clean();
$this->assertEmpty( $actual );
set_post_thumbnail( $this->post, $this->attachment_id );
ob_start();
the_post_thumbnail_url();
$actual = ob_get_clean();
$this->assertEquals( wp_get_attachment_url( $this->attachment_id ), $actual );
}
}