Posts: Add `$post` parameter to modified date and time functions.
Unifies the APIs for getting a post's modified date or time with getting a post's date or time. Adds the `$post` parameter to the functions `get_the_modified_date` and `get_the_modified_time`. Adds the `$post` parameter to the filters `get_the_modified_date` and `get_the_modified_time`. Props Soean, lukecavanagh. Fixes #37059. git-svn-id: https://develop.svn.wordpress.org/trunk@37738 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
0f319917c4
commit
54f1c097a6
|
@ -2254,26 +2254,37 @@ function the_modified_date( $d = '', $before = '', $after = '', $echo = true ) {
|
||||||
* Retrieve the date on which the post was last modified.
|
* Retrieve the date on which the post was last modified.
|
||||||
*
|
*
|
||||||
* @since 2.1.0
|
* @since 2.1.0
|
||||||
|
* @since 4.6.0 The `$post` parameter was added.
|
||||||
*
|
*
|
||||||
* @param string $d Optional. PHP date format. Defaults to the "date_format" option
|
* @param string $d Optional. PHP date format defaults to the date_format option if not specified.
|
||||||
* @return string
|
* @param int|WP_Post $post Optional. Post ID or WP_Post object. Default current post.
|
||||||
|
* @return false|string Date the current post was modified. False on failure.
|
||||||
*/
|
*/
|
||||||
function get_the_modified_date($d = '') {
|
function get_the_modified_date( $d = '', $post = null ) {
|
||||||
if ( '' == $d )
|
$post = get_post( $post );
|
||||||
$the_time = get_post_modified_time(get_option('date_format'), null, null, true);
|
|
||||||
else
|
if ( ! $post ) {
|
||||||
$the_time = get_post_modified_time($d, null, null, true);
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( empty( $d ) ) {
|
||||||
|
$the_time = get_post_modified_time( get_option( 'date_format' ), false, $post, true );
|
||||||
|
} else {
|
||||||
|
$the_time = get_post_modified_time( $d, false, $post, true );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filters the date a post was last modified.
|
* Filters the date a post was last modified.
|
||||||
*
|
*
|
||||||
* @since 2.1.0
|
* @since 2.1.0
|
||||||
|
* @since 4.6.0 The `$post` parameter was added.
|
||||||
*
|
*
|
||||||
* @param string $the_time The formatted date.
|
* @param string $the_time The formatted date.
|
||||||
* @param string $d PHP date format. Defaults to value specified in
|
* @param string $d PHP date format. Defaults to value specified in
|
||||||
* 'date_format' option.
|
* 'date_format' option.
|
||||||
|
* @param WP_Post $post WP_Post object.
|
||||||
*/
|
*/
|
||||||
return apply_filters( 'get_the_modified_date', $the_time, $d );
|
return apply_filters( 'get_the_modified_date', $the_time, $d, $post );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -2397,27 +2408,40 @@ function the_modified_time($d = '') {
|
||||||
* Retrieve the time at which the post was last modified.
|
* Retrieve the time at which the post was last modified.
|
||||||
*
|
*
|
||||||
* @since 2.0.0
|
* @since 2.0.0
|
||||||
|
* @since 4.6.0 The `$post` parameter was added.
|
||||||
*
|
*
|
||||||
* @param string $d Optional Either 'G', 'U', or php date format defaults to the value specified in the time_format option.
|
* @param string $d Optional. Format to use for retrieving the time the post
|
||||||
* @return string
|
* was modified. Either 'G', 'U', or php date format defaults
|
||||||
|
* to the value specified in the time_format option. Default empty.
|
||||||
|
* @param int|WP_Post $post Optional. Post ID or WP_Post object. Default current post.
|
||||||
|
* @return false|string Formatted date string or Unix timestamp. False on failure.
|
||||||
*/
|
*/
|
||||||
function get_the_modified_time($d = '') {
|
function get_the_modified_time( $d = '', $post = null ) {
|
||||||
if ( '' == $d )
|
$post = get_post( $post );
|
||||||
$the_time = get_post_modified_time(get_option('time_format'), null, null, true);
|
|
||||||
else
|
if ( ! $post ) {
|
||||||
$the_time = get_post_modified_time($d, null, null, true);
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( empty( $d ) ) {
|
||||||
|
$the_time = get_post_modified_time( get_option( 'time_format' ), false, $post, true );
|
||||||
|
} else {
|
||||||
|
$the_time = get_post_modified_time( $d, false, $post, true );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filters the localized time a post was last modified.
|
* Filters the localized time a post was last modified.
|
||||||
*
|
*
|
||||||
* @since 2.0.0
|
* @since 2.0.0
|
||||||
|
* @since 4.6.0 The `$post` parameter was added.
|
||||||
*
|
*
|
||||||
* @param string $the_time The formatted time.
|
* @param string $the_time The formatted time.
|
||||||
* @param string $d Format to use for retrieving the time the post was
|
* @param string $d Format to use for retrieving the time the post was
|
||||||
* written. Accepts 'G', 'U', or php date format. Defaults
|
* written. Accepts 'G', 'U', or php date format. Defaults
|
||||||
* to value specified in 'time_format' option.
|
* to value specified in 'time_format' option.
|
||||||
|
* @param WP_Post $post WP_Post object.
|
||||||
*/
|
*/
|
||||||
return apply_filters( 'get_the_modified_time', $the_time, $d );
|
return apply_filters( 'get_the_modified_time', $the_time, $d, $post );
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -345,4 +345,46 @@ class Tests_General_Template extends WP_UnitTestCase {
|
||||||
$this->custom_logo_id = $this->_make_attachment( $upload );
|
$this->custom_logo_id = $this->_make_attachment( $upload );
|
||||||
return $this->custom_logo_id;
|
return $this->custom_logo_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test get_the_modified_time
|
||||||
|
*
|
||||||
|
* @ticket 37059
|
||||||
|
*
|
||||||
|
* @since 4.6.0
|
||||||
|
*/
|
||||||
|
function test_get_the_modified_time_default() {
|
||||||
|
$details = array(
|
||||||
|
'post_date' => '2016-01-21 15:34:36',
|
||||||
|
'post_date_gmt' => '2016-01-21 15:34:36',
|
||||||
|
);
|
||||||
|
$post_id = $this->factory->post->create( $details );
|
||||||
|
$post = get_post( $post_id );
|
||||||
|
|
||||||
|
$GLOBALS['post'] = $post;
|
||||||
|
|
||||||
|
$expected = '1453390476';
|
||||||
|
$d = 'G';
|
||||||
|
$actual = get_the_modified_time( $d );
|
||||||
|
$this->assertEquals( $expected, $actual );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test get_the_modified_time with post_id parameter.
|
||||||
|
*
|
||||||
|
* @ticket 37059
|
||||||
|
*
|
||||||
|
* @since 4.6.0
|
||||||
|
*/
|
||||||
|
function test_get_the_modified_time_with_post_id() {
|
||||||
|
$details = array(
|
||||||
|
'post_date' => '2016-01-21 15:34:36',
|
||||||
|
'post_date_gmt' => '2016-01-21 15:34:36',
|
||||||
|
);
|
||||||
|
$post_id = $this->factory->post->create( $details );
|
||||||
|
$d = 'G';
|
||||||
|
$expected = '1453390476';
|
||||||
|
$actual = get_the_modified_time( $d, $post_id );
|
||||||
|
$this->assertEquals( $expected, $actual );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue