ukrainian-mounth

Вивід назви місяців у правильній для Української мови формі на WordPress

Дата публікації: WordPress, Помилки

Функції WordPress для виведення дат мають ряд недоліків, у них не враховуються особливості української мови, зокрема відмінки. Тому будь-яка дата, в якій присутня назва місяця, виводиться завжди в називному відмінку, наприклад, 20 грудень. Щоб змінити таке неприродне звучання назви місяців, можна застосувати кілька.

Другим більш неприємним недоліком є це, що не всі місяці виводяться коректно: Січень, ЛютШй, Березень, Њвітень, Сравень, Червень, ЛШЯень, СерЯень, Вересень, Жнвтень, ЛШстнЯаХ, ГрсХень. Ось так виводились місяці останнього разу, коли я працював з одною темою, що саме і стало причиною цієї статті. Кожен перший місяць кварталу виводився коректно: Січень, Березень, Червень, Вересень, а всі інші не коректно : ЛютШй, Њвітень, Сравень, ЛШЯень, СерЯень, Жнвтень, ЛШстнЯаХ, ГрсХень. Для вирішення цієї проблеми я також використав фільтри.

nepravulnuj-misjac

Для зміни відміни назви місяців у датах українською мовою додайте в файл functions.php наступний код

function true_ukrainian_date_forms($the_date = '') {
if ( substr_count($the_date , '---') > 0 ) {
return str_replace('---', '', $the_date);
}
$replacements = array(
"Січень" => "Січня",
"ЛютШй" => "Лютого",
"Березень" => "Березня",
"Њвітень" => "Квітня",
"Сравень" => "Травня",
"Червень" => "Червня",
"ЛШЯень" => "Липня",
"СерЯень" => "Серпня",
"Вересень" => "Вересня",
"Жнвтень" => "Жовтня",
"ЛШстнЯаХ" => "Листопада",
"ГрсХень" => "Грудня"
);
return strtr($the_date, $replacements);
}
add_filter('the_time', 'true_ukrainian_date_forms');
add_filter('get_the_time', 'true_ukrainian_date_forms');
add_filter('the_date', 'true_ukrainian_date_forms');
add_filter('get_the_date', 'true_ukrainian_date_forms');
add_filter('the_modified_time', 'true_ukrainian_date_forms');
add_filter('get_the_modified_date', 'true_ukrainian_date_forms');
add_filter('get_post_time', 'true_ukrainian_date_forms');
add_filter('get_comment_date', 'true_ukrainian_date_forms');

Цей код змінює назви місяців на правильні з точки зору української мови. Наприклад, 10 січень буде змінено на 10 січня. Код працює зі стандартними функціями виведення дат в українській версії WordPress.(Якщо Вам необхідно просто замінити відмінки, а місяці правильно виводяться, то просто замініть в коді некоректні місяці на коректні в називному відмінку).

Якщо ж ви використовуєте англійську версію WordPress, але хочете, щоб виводилися правильні дати українською мовою, то використовуйте в коді цей масив місяців:

$replacements = array(
"Jan" => "Січня",
"Feb" => "Лютого",
"Mar" => "Березня",
"Apr" => "Квітня",
"May" => "Травня",
"Jun" => "Червня",
"Jul" => "Липня",
"Aug" => "Серпня",
"Sep" => "Вересня",
"Oct" => "Жовтня",
"Nov" => "Листопада",
"Dec" => "Грудня"
);

Цей код працює зі стандартними функціями виведення дат і тільки в поточній темі.

Код, що перетворює вивід місяців в правильній для української мови формі. Працює з українською та англійської версією WordPress.


Думки про “Вивід назви місяців у правильній для Української мови формі на WordPress

  1. Дякую за статтю.
    Код дійсно працює і змінює називний відмінок місяців в даті публікації на родовий що значно приємніше.
    Але разом з тим відмінок змінюється і в місцях де мав би лишатися називним, наприклад в заголовці Архіву:
    “Місяць: Квітня 2018”
    або в навігаційній стежці:
    “Головна > 2018 > Квітня > 24”
    Потрібно використовувати кілька відмінків місяців в різних місцях.

Залишити відповідь

Войти с помощью: 

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *