wp_maybe_decline_date( string $date )
Determines if the date should be declined.
Description Description
If the locale specifies that month names require a genitive case in certain formats (like ‘j F Y’), the month name will be replaced with a correct form.
Parameters Parameters
- $date
-
(string) (Required) Formatted date string.
Return Return
(string) The date, declined if locale specifies it.
Source Source
File: wp-includes/functions.php
function wp_maybe_decline_date( $date ) { global $wp_locale; // i18n functions are not available in SHORTINIT mode if ( ! function_exists( '_x' ) ) { return $date; } /* * translators: If months in your language require a genitive case, * translate this to 'on'. Do not translate into your own language. */ if ( 'on' === _x( 'off', 'decline months names: on or off' ) ) { $months = $wp_locale->month; $months_genitive = $wp_locale->month_genitive; // Match a format like 'j F Y' or 'j. F' if ( preg_match( '#^\d{1,2}\.? [^\d ]+#u', $date ) ) { foreach ( $months as $key => $month ) { $months[ $key ] = '# ' . $month . '( |$)#u'; } foreach ( $months_genitive as $key => $month ) { $months_genitive[ $key ] = ' ' . $month . '$1'; } $date = preg_replace( $months, $months_genitive, $date ); } // Match a format like 'F jS' or 'F j' and change it to 'j F' if ( preg_match( '#^[^\d ]+ \d{1,2}(st|nd|rd|th)? #u', trim( $date ) ) ) { foreach ( $months as $key => $month ) { $months[ $key ] = '#' . $month . ' (\d{1,2})(st|nd|rd|th)?#u'; } foreach ( $months_genitive as $key => $month ) { $months_genitive[ $key ] = '$1 ' . $month; } $date = preg_replace( $months, $months_genitive, $date ); } } // Used for locale-specific rules $locale = get_locale(); if ( 'ca' === $locale ) { // " de abril| de agost| de octubre..." -> " d'abril| d'agost| d'octubre..." $date = preg_replace( '# de ([ao])#i', " d'\\1", $date ); } return $date; }
Expand full source code Collapse full source code View on Trac
Changelog Changelog
Version | Description |
---|---|
4.4.0 | Introduced. |