Make WordPress Core

Changeset 37738


Ignore:
Timestamp:
06/17/2016 05:11:29 AM (7 years ago)
Author:
peterwilsoncc
Message:

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.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/general-template.php

    r37674 r37738  
    22552255 *
    22562256 * @since 2.1.0
    2257  *
    2258  * @param string $d Optional. PHP date format. Defaults to the "date_format" option
    2259  * @return string
    2260  */
    2261 function get_the_modified_date($d = '') {
    2262     if ( '' == $d )
    2263         $the_time = get_post_modified_time(get_option('date_format'), null, null, true);
    2264     else
    2265         $the_time = get_post_modified_time($d, null, null, true);
     2257 * @since 4.6.0 The `$post` parameter was added.
     2258 *
     2259 * @param string      $d    Optional. PHP date format defaults to the date_format option if not specified.
     2260 * @param int|WP_Post $post Optional. Post ID or WP_Post object. Default current post.
     2261 * @return false|string Date the current post was modified. False on failure.
     2262 */
     2263function get_the_modified_date( $d = '', $post = null ) {
     2264    $post = get_post( $post );
     2265
     2266    if ( ! $post ) {
     2267        return false;
     2268    }
     2269
     2270    if ( empty( $d ) ) {
     2271        $the_time = get_post_modified_time( get_option( 'date_format' ), false, $post, true );
     2272    } else {
     2273        $the_time = get_post_modified_time( $d, false, $post, true );
     2274    }
    22662275
    22672276    /**
     
    22692278     *
    22702279     * @since 2.1.0
    2271      *
    2272      * @param string $the_time The formatted date.
    2273      * @param string $d        PHP date format. Defaults to value specified in
    2274      *                         'date_format' option.
    2275      */
    2276     return apply_filters( 'get_the_modified_date', $the_time, $d );
     2280     * @since 4.6.0 The `$post` parameter was added.
     2281     *
     2282     * @param string  $the_time The formatted date.
     2283     * @param string  $d        PHP date format. Defaults to value specified in
     2284     *                          'date_format' option.
     2285     * @param WP_Post $post     WP_Post object.
     2286     */
     2287    return apply_filters( 'get_the_modified_date', $the_time, $d, $post );
    22772288}
    22782289
     
    23982409 *
    23992410 * @since 2.0.0
    2400  *
    2401  * @param string $d Optional Either 'G', 'U', or php date format defaults to the value specified in the time_format option.
    2402  * @return string
    2403  */
    2404 function get_the_modified_time($d = '') {
    2405     if ( '' == $d )
    2406         $the_time = get_post_modified_time(get_option('time_format'), null, null, true);
    2407     else
    2408         $the_time = get_post_modified_time($d, null, null, true);
     2411 * @since 4.6.0 The `$post` parameter was added.
     2412 *
     2413 * @param string      $d     Optional. Format to use for retrieving the time the post
     2414 *                           was modified. Either 'G', 'U', or php date format defaults
     2415 *                           to the value specified in the time_format option. Default empty.
     2416 * @param int|WP_Post $post  Optional. Post ID or WP_Post object. Default current post.
     2417 * @return false|string Formatted date string or Unix timestamp. False on failure.
     2418 */
     2419function get_the_modified_time( $d = '', $post = null ) {
     2420    $post = get_post( $post );
     2421
     2422    if ( ! $post ) {
     2423        return false;
     2424    }
     2425
     2426    if ( empty( $d ) ) {
     2427        $the_time = get_post_modified_time( get_option( 'time_format' ), false, $post, true );
     2428    } else {
     2429        $the_time = get_post_modified_time( $d, false, $post, true );
     2430    }
    24092431
    24102432    /**
     
    24122434     *
    24132435     * @since 2.0.0
     2436     * @since 4.6.0 The `$post` parameter was added.
    24142437     *
    24152438     * @param string $the_time The formatted time.
     
    24172440     *                         written. Accepts 'G', 'U', or php date format. Defaults
    24182441     *                         to value specified in 'time_format' option.
    2419      */
    2420     return apply_filters( 'get_the_modified_time', $the_time, $d );
     2442     * @param WP_Post $post    WP_Post object.
     2443     */
     2444    return apply_filters( 'get_the_modified_time', $the_time, $d, $post );
    24212445}
    24222446
  • trunk/tests/phpunit/tests/general/template.php

    r37135 r37738  
    346346        return $this->custom_logo_id;
    347347    }
     348
     349    /**
     350     * Test get_the_modified_time
     351     *
     352     * @ticket 37059
     353     *
     354     * @since 4.6.0
     355     */
     356    function test_get_the_modified_time_default() {
     357        $details = array(
     358                'post_date' => '2016-01-21 15:34:36',
     359                'post_date_gmt' => '2016-01-21 15:34:36',
     360        );
     361        $post_id = $this->factory->post->create( $details );
     362        $post = get_post( $post_id );
     363
     364        $GLOBALS['post'] = $post;
     365
     366        $expected = '1453390476';
     367        $d = 'G';
     368        $actual = get_the_modified_time( $d );
     369        $this->assertEquals( $expected, $actual );
     370    }
     371
     372    /**
     373     * Test get_the_modified_time with post_id parameter.
     374     *
     375     * @ticket 37059
     376     *
     377     * @since 4.6.0
     378     */
     379    function test_get_the_modified_time_with_post_id() {
     380        $details = array(
     381                'post_date' => '2016-01-21 15:34:36',
     382                'post_date_gmt' => '2016-01-21 15:34:36',
     383        );
     384        $post_id = $this->factory->post->create( $details );
     385        $d = 'G';
     386        $expected = '1453390476';
     387        $actual = get_the_modified_time( $d, $post_id );
     388        $this->assertEquals( $expected, $actual );
     389    }
    348390}
Note: See TracChangeset for help on using the changeset viewer.