Как сделать адреса статей WordPress из заголовков с транслитерацией

Плагины транслитерации прекрасно справляются с «переводом» кириллических заголовков. Но здесь речь идет о том, что у статей WordPress были не ЧПУ, например, после переноса с Liveinternet.

Сделать адреса страниц равными заголовкам статей не сложно, но здесь я попробую решить еще две задачи: транслитерировать эти адреса и сделать все буквы в нижнем регистре.

Как сделать адреса статей WordPress из заголовков с транслитерацией

Данные о постах и файлах находятся в таблице wp_post. Для данной статьи значения таблиц:

  • post_title — «Высококлассный специалист»
  • post_name — «post1234567890»

Есть еще guid — «адрес сайта/?p=5», который в данном случае не имеет значения.

Как сделать адреса статей WordPress из заголовков с транслитерацией

Сейчас адрес не соответствует заголовку (см. картинку):

Как сделать адреса статей WordPress из заголовков с транслитерацией

Теоретически мне надо, чтобы имя поста (post_name) стала равно заголовку поста (post_title), который при этом транслитерировался – чтобы адрес превратился в примерно такое:

«vysokoklassnyj-spetsialist»

Как сделать адреса статей WordPress из заголовков с транслитерацией

Заменить name на title несложно с помощью SQL-запроса к базе данных. Примерно такого:

UPDATE wp_posts SET post_name = post_title WHERE post_status= 'publish'

Т.е. в опубликованных постах (посты со статусом «publish» в таблице wp_posts) установить post_name равным соответствующему post_title.

Для запроса перейдем на вкладку SQL нужной базы данных в phpMyAdmin.

Как сделать адреса статей WordPress из заголовков с транслитерацией

У меня на тестовом сайте нашлось два подходящих поста для изменения (статья и страница, наверное).

Как сделать адреса статей WordPress из заголовков с транслитерацией

Действительно видим изменения в колонке post_name: адреса стали равны заголовкам статей (страниц), но кириллицей! Это мне не подходит.

Как сделать адреса статей WordPress из заголовков с транслитерацией

Для исправления ситуации попробую деактивировать и снова включить плагин транслитерации Cyr to Lat enhanced, которым пользуюсь.

Как сделать адреса статей WordPress из заголовков с транслитерацией

После активации плагина адреса действительно прописались латинскими символами, но с сохранением регистра – зачем мне в адресе заглавная буква? Это, конечно, не имеем практического значения, но эстетично мне не нравится.

Это интересно:  Взлом сайта через подбор

Как сделать адреса статей WordPress из заголовков с транслитерацией

Нашел такую команду изменения регистра – LOWER (или UPPER для заглавных букв). Попробую допились предыдущий SQL-запрос к базе данных WordPress:

UPDATE wp_posts SET post_name = LOWER (post_title) WHERE post_status= 'publish'

Ура! Сработало!

Как сделать адреса статей WordPress из заголовков с транслитерацией

Теперь снова отключаю и включаю плагин транслитерации адресов WordPress.

Как сделать адреса статей WordPress из заголовков с транслитерацией

P.S. Кстати, чтобы старые адреса автоматически перенаправляли на новые, нужно значения в таблице guid (что-то типа служебного адреса страницы) сделать равными старым значениям post_name (перед их изменением, конечно).

P.P.S. Плохо — не разбираться в чем-то, а всё искать методом тыка.

Как сделать адреса статей WordPress из заголовков с транслитерацией

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Самое интересное в блоге

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

четыре × 5 =