X
  • Дизайн та розробка сайту
  • Дизайн і створення сайтів. Розробка тем для WordPress. Створення Landing Page.
  • office@gnatkovsky.com.ua
  • @vgnat
  • Написати мені
Замовити послугу

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

Приклад
  • 2024-10-30
  • 3788 переглядів

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

Доброго времени суток

Решил написать небольшую статью про простейший способ, как без плагина сделать ЧПУ ссылки на 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",

Как вы уже поняли, каждое правило имеет вид - "Д"=>"D" и разделяются запятой. Вы можете добавить свои, если нужно или удалить лишние.

После переменной идет функция, которая и будет выполнять транслитерацию - url_translit_iso. Она использует нашу переменную, где заданы правила и с ее помощью меняет кириллические символы в заглавии записи на латиницу.

В последней строке мы создаем событие - add_action, таким образом вызываем нашу функцию, чтобы она начала работать.

После того как добавили код, можете перейти в консоль вашего сайта и попробовать создать новую запись. Задайте ей заглавие и посмотрите как сформируется ссылка. Если вместо кириллицы появилась латиница, значит вы все сделали правильно.

На этом все, спасибо за внимание. 🙂

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

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

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

Deprecated: Функція WP_Query викликана з аргументом, який вважається застарілим з версії 3.1.0! Вираз caller_get_posts застарілий. Використовуйте ignore_sticky_posts. in /var/www/vhosts/gnatkovsky.com.ua/gnatkovsky.com.ua/public/wp-includes/functions.php on line 6078