Например, вы опубликовали статью, а дата в ней выглядит примерно так 30 Октябрь 2018. Согласитесь, ведь тридцатое октябрь, как то не звучит, тридцатое октября было бы лучше. Если вы столкнулись с этим и хотите исправить, при этом не менять название месяца на номер или выводить только первые три буквы месяца, то можно добавить одну функцию с несколькими фильтрами.
Для этого вам понадобится добавить немного кода в файл пользовательских функций function.php. Если вы не знакомы с этим файлом и не знаете где добавлять код, то добавляете в самый конец перед закрывающим тегом PHP ?>. Если его нет, то просто в самый конец. Добавить нужно вот такую функцию:
Перед изменением function.php, обязательно сохраните его резервную копию, чтобы в дальнейшем, в случаи ошибки, вернуть все как было.
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. Если вы используете английскую, у вас все переведено и нужно исправить дату - то массив будет такой:
$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, то вам нужен только первый фильтр и все. Ну и аналогично для остальных.
Вот и все что нужно знать по этому вопросу, теперь вы легко сможете решить проблему со склонением месяцев.
На этом все, спасибо за внимание. 🙂