Последнее обновлене - 15 января 2023 в 16:38
Это небольшой пост о том, как включить автоматическую транслитерацию постоянных ссылок на сайте, работающем под управлением CMS WordPress. Покажу всего 2 способа. Первый — при помощи простенького плагина WP Translitera. Второй — внедрение кода в файл functions.php.
Что такое транслитерация и зачем она нужна на сайте? Транслитерация — это не перевод с одного языка на другой. Она лишь позволяет преобразовать одни символы в другие, например, кириллицу в латиницу. Например, URL вида: mysupersite.ru/новая-статья/ может быть приведён к виду: mysupersite.ru/novaja-statja/.
Делается это для того, чтобы привести ссылку к удобоваримому виду, чтобы её можно было без проблем прочитать. Ведь если отправить ссылку без транслита в соцсети, получатель может увидеть вместо человеко-понятного URL набор непонятных символов.
При публикации новой записи, настраивать транслитерацию вручную каждый раз неудобно. Поэтому, сейчас посмотрим, как этот процесс можно автоматизировать и даже не вспоминать больше об этих настройках.
При помощи плагина
В этом блоге я использую плагин WP Translitera. Он автоматически конвертирует ссылки на страницы, записи, теги, изображения и другие файлы в латиницу. Его вы можете взять в официальном репозитории WordPress.
Плагин сразу готов к работе после установки и активации. Удобство его заключается ещё и в том, что появляется возможность преобразовать уже существующие страницы и посты, рубрики и теги.
Отмечаем чекбокс и жмём кнопку «Транслитерировать». Чудо свершилось!
При помощи кода
Если по какой-то причине нет желания устанавливать плагин транслитерации, есть возможность просто вставить код в файл functions.php. Результат будет тот же.
Код выглядит следующим образом:
/*******************************
Латиница
********************************/
$iso = array(
"Є"=>"YE","І"=>"I","Ѓ"=>"G","і"=>"i","№"=>"#","є"=>"ye","ѓ"=>"g",
"А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D",
"Е"=>"E","Ё"=>"YO","Ж"=>"ZH",
"З"=>"Z","И"=>"I","Й"=>"J","К"=>"K","Л"=>"L",
"М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R",
"С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"X",
"Ц"=>"C","Ч"=>"CH","Ш"=>"SH","Щ"=>"SHH","Ъ"=>"'",
"Ы"=>"Y","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA",
"а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d",
"е"=>"e","ё"=>"yo","ж"=>"zh",
"з"=>"z","и"=>"i","й"=>"j","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"x",
"ц"=>"c","ч"=>"ch","ш"=>"sh","щ"=>"shh","ъ"=>"",
"ы"=>"y","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya","«"=>"","»"=>"","—"=>"-"
);
function sanitize_title_with_translit($title) {
global $iso;
$blogwp_translit = get_option('blogwp_translit');
switch ($blogwp_translit) {
default:
return strtr($title, $iso);
}
}
add_action('sanitize_title', 'sanitize_title_with_translit', 0);
Как видите, ничего сложного. Всего несколько строчек кода легко преобразуют любой URL записей и страниц на вашем сайте. Не понимаю, почему до сих пор этот функционал не предусмотрен WordPress по дефолту.
Я включила транслитерацию при помощи плагина. В файлы лезть не хочется, а дочернюю тему делать лень.