Date/Time: When determining whether to decline the month name in `wp_maybe_decline_date()`, take word boundaries into account.
Add more unit tests. Props Rarst, Clorith, timon33, Xendo, SergeyBiryukov. Fixes #48606. Built from https://develop.svn.wordpress.org/trunk@46862 git-svn-id: http://core.svn.wordpress.org/trunk@46662 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
a227c231a2
commit
098273f1d3
|
@ -335,24 +335,29 @@ function wp_maybe_decline_date( $date ) {
|
||||||
$months = $wp_locale->month;
|
$months = $wp_locale->month;
|
||||||
$months_genitive = $wp_locale->month_genitive;
|
$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 ) ) {
|
* Match a format like 'j F Y' or 'j. F' (day of the month, followed by month name)
|
||||||
|
* and decline the month.
|
||||||
|
*/
|
||||||
|
if ( preg_match( '#\b\d{1,2}\.? [^\d ]+\b#u', $date ) ) {
|
||||||
foreach ( $months as $key => $month ) {
|
foreach ( $months as $key => $month ) {
|
||||||
$months[ $key ] = '# ' . $month . '( |$)#u';
|
$months[ $key ] = '# ' . preg_quote( $month, '#' ) . '\b#u';
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ( $months_genitive as $key => $month ) {
|
foreach ( $months_genitive as $key => $month ) {
|
||||||
$months_genitive[ $key ] = ' ' . $month . '$1';
|
$months_genitive[ $key ] = ' ' . $month;
|
||||||
}
|
}
|
||||||
|
|
||||||
$date = preg_replace( $months, $months_genitive, $date );
|
$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 ) ) ) {
|
* Match a format like 'F jS' or 'F j' (month name, followed by day with an optional ordinal suffix)
|
||||||
|
* and change it to declined 'j F'.
|
||||||
|
*/
|
||||||
|
if ( preg_match( '#\b[^\d ]+ \d{1,2}(st|nd|rd|th)?\b#u', trim( $date ) ) ) {
|
||||||
foreach ( $months as $key => $month ) {
|
foreach ( $months as $key => $month ) {
|
||||||
$months[ $key ] = '#' . $month . ' (\d{1,2})(st|nd|rd|th)?#u';
|
$months[ $key ] = '#\b' . preg_quote( $month, '#' ) . ' (\d{1,2})(st|nd|rd|th)?\b#u';
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ( $months_genitive as $key => $month ) {
|
foreach ( $months_genitive as $key => $month ) {
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
*
|
*
|
||||||
* @global string $wp_version
|
* @global string $wp_version
|
||||||
*/
|
*/
|
||||||
$wp_version = '5.4-alpha-46860';
|
$wp_version = '5.4-alpha-46862';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||||
|
|
Loading…
Reference in New Issue