Автоматический перевод ярлыков WordPress без плагинов.

WordPress

В процессе создания новых постов или страниц WordPress автоматически генерирует ярлык (slug) — часть URL, которая отражает название поста. Но иногда WordPress не обрабатывает кириллицу, и вместо красивого URL вы можете получить нечитабельные символы. Сегодня расскажем, как сделать автоматическое создание ярлыков на основе заголовков на русском языке и автоматически переводить их в латиницу — без использования плагинов.

Зачем это нужно?

Читабельные и правильные URL не только улучшают SEO, но и помогают пользователям лучше воспринимать структуру вашего сайта. Например, вместо URL вида site.ru/%d0%bf%d0%be%d1%81%d1%82/ мы получим site.ru/post/.

Шаг 1: Подготовка файла functions.php

Весь код добавляется в файл functions.php вашей темы. Этот файл можно найти в админке WordPress, зайдя в Внешний видРедактор тем и выбрав файл functions.php. Рекомендуется сделать резервную копию файла перед изменениями.

Шаг 2: Добавление функции для автоматического создания ярлыков

Добавьте следующий код в файл functions.php:

// Функция транслитерации для URL-ярлыков
function transliterate_slug($slug) {
    $slug = mb_strtolower($slug); // Приведение строки к нижнему регистру
    $slug = strtr($slug, array(
        'а' => 'a', 'б' => 'b', 'в' => 'v', 'г' => 'g', 'д' => 'd', 'е' => 'e',
        'ё' => 'yo', 'ж' => 'zh', 'з' => 'z', 'и' => 'i', 'й' => 'y', 'к' => 'k',
        'л' => 'l', 'м' => 'm', 'н' => 'n', 'о' => 'o', 'п' => 'p', 'р' => 'r',
        'с' => 's', 'т' => 't', 'у' => 'u', 'ф' => 'f', 'х' => 'kh', 'ц' => 'ts',
        'ч' => 'ch', 'ш' => 'sh', 'щ' => 'sch', 'ъ' => '', 'ы' => 'y', 'ь' => '',
        'э' => 'e', 'ю' => 'yu', 'я' => 'ya'
    ));
    // Удаляем все лишние символы, кроме букв, цифр и дефисов
    $slug = preg_replace('/[^a-z0-9\-]+/', '-', $slug);
    $slug = trim($slug, '-'); // Удаляем начальные и конечные дефисы
    return $slug;
}
// Применение функции транслитерации при сохранении поста
add_filter('sanitize_title', 'transliterate_slug', 9);

Как работает этот код?

  1. Функция transliterate($text): Она принимает текст и переводит его с кириллицы на латиницу, используя таблицу транслитерации. Текст очищается от ненужных символов, оставляя только буквы, цифры и дефисы.
  2. Функция auto_generate_slug($post_ID): Она вызывается каждый раз, когда пост сохраняется. Функция получает заголовок поста, преобразует его в транслитерированный slug и обновляет поле post_name (ярлык), если он ещё не был установлен.
  3. Хук save_post: Добавленный хук автоматически вызывает функцию auto_generate_slug при сохранении поста.

Пример результата

После добавления кода, когда вы создаете новый пост с заголовком, например, «Привет, мир!», ярлык будет автоматически установлен как privet-mir.

Преимущества этого подхода

  • Удобство: Вам не нужно вручную прописывать ярлыки или устанавливать плагины для создания slug.
  • Читабельность: Slug становится понятным и удобным для восприятия.
  • SEO: Чистый URL способствует лучшему ранжированию в поисковых системах и повышает кликабельность.

Заключение

С этим простым кодом у вас больше не будет проблем с кириллическими символами в ярлыках, а также не придется использовать плагины для автоматического создания URL на основе заголовка. Уверен, этот способ поможет вам сделать ваш WordPress сайт более удобным и SEO-оптимизированным!

Создание сайта на CMS WordPress: обучение и хостинг
Оцените статью
( Пока оценок нет )
Mix Of Me
Добавить комментарий

Нажимая 'Отправить комментарий', вы доверяете нам ваши данные. Мы обрабатываем их согласно правилам и бережно храним, как указано в политике конфиденциальности.