X
Замовити послугу

ЛЗУ посилання на WordPress без плагіна

Приклад
  • 2021-03-05
  • 25 перегляд

    0 коментар

  • Дизайн і розробка сайту

Доброго вам дня.

Вирішив написати невелику статтю про найпростіший спосіб, як без плагіна зробити ЛЗУ посилання на WordPress. Тобто ЛЗУ (Людино Зрозумілі Урл), це коли кириличні посилання переробляють в латиницю. За замовчуванням WordPress створює посилання для записів кирилицею. Якщо ви так їх залишите, то це буде не зовсім правильно, бо браузери, месенджери, соцмережі і тд, всюди де будуть такі посилання, спробують їх переробити і ваші посилання будуть по кілометру довжиною з незрозумілих вам символів.

ЧПУ ссылки на WordPress без плагина

У мене вже є стаття на сайті, де я розповідав, як за допомогою плагінів вирішити це завдання, а також як правильно налаштувати формування посилань на WordPress за допомогою стандартних налаштувань - Постійні посилання на латиниці або ЛЗУ – Людино Зрозумілий Урл WordPress.

У тому плагіні я пропонував встановлювати плагін RusToLat. Зараз він вже довго не оновлювався і застарів. Можна знайти аналоги типу Cyr to Lat або якщо ви використовуєте плагін для SEO, то в багатьох з них вже вшита функція перекладу посилань.

У цій же статті, я розповім як самому задати транслітерацію і формування ЛЗУ за допомогою невеликого коду. Також даний спосіб дозволить задати свої правила транслітерації. Наприклад, мені цей спосіб дозволив додати параметри транслітерації для українських літер. У прикладі вони будуть, так що даний код підійде для тих, хто як і я робить сайт українською та російською мовами. Якщо ж ні, то можете просто видалити зайві переклади.

Як завжди, щоб додати нову функцію в WordPress, вам знадобиться файл призначений для функцій користувача function.php. Додаєте в самий кінець перед закриваючим тегом PHP ?>. Якщо його немає, то просто в самий кінець.

Перед внесенням змін в function.php , обов'язково збережіть його копію, щоб в подальшому, у випадку помилки, повернути все як було. Так само, можете використовувати дочірню тему. Якщо ви не знаєте що це таке, то ознайомтеся зі статтею - Дочірні теми WordPress.

$iso_my_thm = array(
   "Є"=>"EH","є"=>"eh","І"=>"I","і"=>"i","Ї"=>"i","ї"=>"i",
   "А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D",
   "Е"=>"E","Ё"=>"JO","Ж"=>"ZH",
   "З"=>"Z","И"=>"I","Й"=>"JJ","К"=>"K","Л"=>"L",
   "М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R",
   "С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"KH",
   "Ц"=>"C","Ч"=>"CH","Ш"=>"SH","Щ"=>"SHH","Ъ"=>"'",
   "Ы"=>"Y","Ь"=>"","Э"=>"EH","Ю"=>"YU","Я"=>"YA",
   "а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d",
   "е"=>"e","ё"=>"jo","ж"=>"zh",
   "з"=>"z","и"=>"i","й"=>"jj","к"=>"k","л"=>"l",
   "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
   "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"kh",
   "ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"shh","ъ"=>"",
   "ы"=>"y","ь"=>"","э"=>"eh","ю"=>"yu","я"=>"ya",
   "—"=>"-","«"=>"","»"=>"","…"=>"","№"=>"#"
   );
 
function url_translit_iso($title){
global $iso_my_thm;
return strtr($title, $iso_my_thm);
}

add_action('sanitize_title', 'url_translit_iso', 0);

Давайте пробіжимося по кодові. Спочатку ми створюємо змінну - $iso_my_thm, всередині якої і задані правила транслітерації. У другому рядку якраз і задані українські літери, якщо вони вам не потрібні, то просто видаліть цей рядок з буквами. Якщо не потрібні російські, то видаліть їх.

"Є"=>"EH","є"=>"eh","І"=>"I","і"=>"i","Ї"=>"i","ї"=>"i",
//або
"Ё"=>"JO","ё"=>"jo","Ъ"=>"'","ъ"=>"","Э"=>"EH","э"=>"eh","ы"=>"y",

Як ви вже зрозуміли, кожне правило має вигляд - "Д"=>"D" і розділяються комою. Ви можете додати свої, якщо потрібно або видалити зайві.

Після змінної йде функція, яка і буде виконувати транслітерацію - url_translit_iso. Вона використовує нашу змінну, де задані правила і з її допомогою змінює кириличні символи в назві запису на латиницю.

В останньому рядку ми створюємо подію - add_action, таким чином викликаємо нашу функцію, щоб вона почала працювати.

Після того як додали код, можете перейти в консоль вашого сайту і спробувати створити новий запис. Задайте йому назву і подивіться як сформується посилання. Якщо замість кирилиці з'явилася латиниця, значить ви все зробили правильно.

На цьому все, дякую за увагу. 🙂

Якщо Вам була корисним моя праця, можете фінансово підтримати сайт або вимкнути функцію блокування реклами, що займе 2 хвилини :)

Хочу підтримати фінансово Хочу вимкнути функцію блокування

Оцініть статтю
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
Проголосовало: 1, в среднем: 5 из 5
Читайте також