Например, вы опубликовали статью, а дата в ней выглядит примерно так 30 Октябрь 2018. Согласитесь, ведь тридцатое октябрь, как то не звучит, тридцатое октября было бы лучше. Если вы столкнулись с этим и хотите исправить, при этом не менять название месяца на номер или выводить только первые три буквы месяца, то можно добавить одну функцию с несколькими фильтрами.
Для этого вам понадобится добавить немного кода в файл пользовательских функций function.php. Если вы не знакомы с этим файлом и не знаете где добавлять код, то добавляете в самый конец перед закрывающим тегом PHP ?>. Если его нет, то просто в самый конец. Добавить нужно вот такую функцию:
Перед изменением function.php, обязательно сохраните его резервную копию, чтобы в дальнейшем, в случаи ошибки, вернуть все как было.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | function correct_date( $cordate = '' ){ if ( substr_count( $cordate , '---' ) > 0 ){ return str_replace ( '---' , '' , $cordate );} $new_d = array ( 'Январь' => 'Января' , 'Февраль' => 'Февраля' , 'Март' => 'Марта' , 'Апрель' => 'Апреля' , 'Май' => 'Мая' , 'Июнь' => 'Июня' , 'Июль' => 'Июля' , 'Август' => 'Августа' , 'Сентябрь' => 'Сентября' , 'Октябрь' => 'Октября' , 'Ноябрь' => 'Ноября' , 'Декабрь' => 'Декабря' ); return strtr ( $cordate , $new_d ); } add_filter( 'the_date' , 'correct_date' ); add_filter( 'get_the_date' , 'correct_date' ); add_filter( 'the_time' , 'correct_date' ); add_filter( 'get_the_time' , 'correct_date' ); add_filter( 'get_post_time' , 'correct_date' ); add_filter( 'get_comment_date' , 'correct_date' ); add_filter( 'the_modified_time' , 'correct_date' ); add_filter( 'get_the_modified_date' , 'correct_date' ); |
У нас есть функция correct_date. Как видите с четвертой строки ее кода начинается замена старых названий на новые. По желанию можете задать свои, например с малой буквы. Данный массив с заменой подойдет для русской версии движка WordPress. Если вы используете английскую, у вас все переведено и нужно исправить дату - то массив будет такой:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $new_d = array ( "Jan" => "Января" , "Feb" => "Февраля" , "Mar" => "Марта" , "Apr" => "Апреля" "May" => "Мая" , "Jun" => "Июня" , "Jul" => "Июля" , "Aug" => "Августа" , "Sep" => "Сентября" , "Oct" => "Октября" , "Nov" => "Ноября" , "Dec" => "Декабря" ); |
Также можно сделать и для других языков, указывайте изначальное название, а потом то что хотите.
Теперь давайте разберем фильтры, которые подключаются функцию склонения названий. Разберем по порядку:
- add_filter('the_date', 'correct_date'); - данный фильтр прикрепляет функцию к выводу на экран или даты публикации поста или группы постов.
- add_filter('get_the_date', 'correct_date'); - аналогичный с первым только для функции get_the_date().
- add_filter('the_time', 'correct_date'); - данный фильтр прикрепляет функцию склонения к выводу на экран времени (даты) публикации текущей записи в цикле WordPress. the_time - идентична the_date().
- add_filter('get_the_time', 'correct_date'); - аналогично с предыдущими.
- add_filter('get_post_time', 'correct_date'); - этот фильтр для функции get_post_time, которая получает результат для обработки, а не выводит его на экран.
- add_filter('get_comment_date', 'correct_date'); - фильтр для функции get_comment_date, что получает дату указанного комментария.
- add_filter('the_modified_time', 'correct_date'); - фильтр для функции the_modified_time, что выводит дату изменения записи.
- add_filter('get_the_modified_date', 'correct_date'); - аналогично с предыдущим.
Все эти фильтры затрагивают все функции, что выводят, или получают даты на WordPress. Вы можете не все использовать. Если вам нужно изменить вывод только даты публикации поста и эта дата вызывается только функцией the_date, то вам нужен только первый фильтр и все. Ну и аналогично для остальных.
Вот и все что нужно знать по этому вопросу, теперь вы легко сможете решить проблему со склонением месяцев.
На этом все, спасибо за внимание. 🙂