diff --git a/src/wp-includes/general-template.php b/src/wp-includes/general-template.php index e88713425b..be46abad25 100644 --- a/src/wp-includes/general-template.php +++ b/src/wp-includes/general-template.php @@ -2682,7 +2682,13 @@ function get_post_modified_time( $d = 'U', $gmt = false, $post = null, $translat function the_weekday() { global $wp_locale; - $the_weekday = $wp_locale->get_weekday( mysql2date( 'w', get_post()->post_date, false ) ); + $post = get_post(); + + if ( ! $post ) { + return; + } + + $the_weekday = $wp_locale->get_weekday( get_post_time( 'w', false, $post ) ); /** * Filters the weekday on which the post was written, for display. @@ -2702,23 +2708,29 @@ function the_weekday() { * * @since 0.71 * - * @global WP_Locale $wp_locale The WordPress date and time locale object. - * @global string $currentday The day of the current post in the loop. - * @global string $previousday The day of the previous post in the loop. + * @global WP_Locale $wp_locale The WordPress date and time locale object. + * @global string $currentday The day of the current post in the loop. + * @global string $previousweekday The day of the previous post in the loop. * * @param string $before Optional. Output before the date. * @param string $after Optional. Output after the date. */ function the_weekday_date( $before = '', $after = '' ) { - global $wp_locale, $currentday, $previousday; + global $wp_locale, $currentday, $previousweekday; + + $post = get_post(); + + if ( ! $post ) { + return; + } $the_weekday_date = ''; - if ( is_new_day() ) { + if ( $currentday !== $previousweekday ) { $the_weekday_date .= $before; - $the_weekday_date .= $wp_locale->get_weekday( mysql2date( 'w', get_post()->post_date, false ) ); + $the_weekday_date .= $wp_locale->get_weekday( get_post_time( 'w', false, $post ) ); $the_weekday_date .= $after; - $previousday = $currentday; + $previousweekday = $currentday; } /** diff --git a/tests/phpunit/tests/date/theDate.php b/tests/phpunit/tests/date/theDate.php index 31bc89e90b..1f6c1d1a42 100644 --- a/tests/phpunit/tests/date/theDate.php +++ b/tests/phpunit/tests/date/theDate.php @@ -138,14 +138,14 @@ class Tests_Date_TheDate extends WP_UnitTestCase { ); ob_start(); - $GLOBALS['currentday'] = '18.09.15'; - $GLOBALS['previousday'] = '17.09.15'; + $GLOBALS['currentday'] = '18.09.15'; + $GLOBALS['previousweekday'] = '17.09.15'; the_weekday_date(); $this->assertEquals( 'Wednesday', ob_get_clean() ); ob_start(); - $GLOBALS['currentday'] = '18.09.15'; - $GLOBALS['previousday'] = '17.09.15'; + $GLOBALS['currentday'] = '18.09.15'; + $GLOBALS['previousweekday'] = '17.09.15'; the_weekday_date( 'before ', ' after' ); $this->assertEquals( 'before Wednesday after', ob_get_clean() ); }