Поменять все ссылки на ЧПУ в WordPress (с транслитерацией)

Как поменять все ссылки Liveinternet на ЧПУ в WordPress

При переносе (импорте) записей из дневника Liveinternet в свой блог WordPress, как уже говорилось, можно выбрать, какими будут ссылки (URL) перенесенных на свой хостинг статей: человекопонятные (ЧПУ) или стандартные для Лиру – post1234567890.

Однако у меня появился вопрос, как изменить ВСЕ ссылки (slugs) постов WordPress автоматически. Замена адресов статей на, например, название этой самой статьи решается простым запросом к базе данных в MySQL, но следующей проблемой окажется то, что ссылки будут кириллические и их так же массово нужно транслитерировать (превратить в латинские символы).

Как поменять все ссылки Liveinternet на ЧПУ в WordPress

Попробую поменять все ссылки блога практически в режиме «онлайн», то есть с одновременным написанием этой статьи. И будет очень жаль потерянного времени, если что-то не получиться.

Выбор ссылок при переносе блога с Liveinternet на WordPress

Если используется давно заброшенный и не доделанный плагин Import LiveInternet (а других нет!), то при импорте в меню «Инструменты» – «Импорт» — «LiveInternet.ru» — «Запустить импорт» нам предлагается два варианта:

  • произвольные ссылки, адрес которых будет зависеть от настроек WordPress («new permalinks for your post will be generated using your permalink settings»);
  • стандартные ссылки Liveinternet («if you want save your posts links like http://your blog url/post210378848/»).

Поменять все ссылки на ЧПУ в WordPress (с транслитерацией)

Наверное, надо выбирать второй вариант (что я ВСЕГДА и делаю), чтобы сохранить структуру ссылок блога, после переноса с сервиса дневников. Надо только в настройках WordPress «Постоянные ссылки» выбрать вариант «Название записи» (в поле примера появится ссылка /%postname%/).

Поменять все ссылки на ЧПУ в WordPress (с транслитерацией)

После импорта XML-файлов все статьи блога будут иметь прежние ссылки, какие были в дневнике.

Это интересно:  Транслитерация при автонаполнении сайтов WordPress (плагины)

Тут надо отметить, что если ПОТОМ вы поменяете ссылку на какую угодно другую, WordPress автоматически будут перенаправлять посетителей со старого адреса на новый, потому что «основной» первоначальный URL записан в отдельную колонку таблицы posts базы данных.

Изменить все ссылки статей WordPress

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

Но мне надо сделать так, чтобы ссылка была транслитерацией названия статьи, например.

Перед этим делаю бекап базы данных и файлов сайта (хотя мой хостинг webhost1 и так регулярно сохраняет копии всех сайтов).

SQL-запрос к базе данных для изменения всех ссылок на статьи

Запрос, на самом деле, очень простой. Идем к таблице post и видим, что URL указаны в колонке post_name, а заголовок поста – в колонке post_title. Значит, нам надо взять «заголовки» и скопировать их в «имена». SQL-запрос будет примерно таким:

UPDATE wp_posts SET post_name = post_title;

«Примерно», потому что у меня, например, будет не wp_posts, а другой префикс в базе данных. В случае с этим сайтом — wp23h_posts.

Итак, в phpMyAdmin в меню SQL делаю указанный запрос и получаю результат:

Поменять все ссылки на ЧПУ в WordPress (с транслитерацией)

Но ничего не получится (хорошего, во всяком случае), потому что адреса просто поменять на заголовки – глупая затея. Интернет не понимает пробелы между кириллическими словами…

Поменять все ссылки на ЧПУ в WordPress (с транслитерацией)

… и пишет ошибку при попытке перейти к любому из постов.

Поменять все ссылки на ЧПУ в WordPress (с транслитерацией)

Поэтому скрещиваю пальцы и перехожу к заключительному этапу переименования URL сайта на WordPress.

Транслитерация URL старых статей WordPress

Снова иду в админке на страницу «Настройки постоянных ссылок» и выбираю, например, «Простые» (?p=123). Сохраняю изменения.

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

А потом снова выбираю «Название записи» (/%postname%/), сохраняю изменения еще раз и надеюсь, что мой плагин транслитерации справиться с новыми кириллическими адресами.

 

НЕТ. Он не справился. Поэтому будем думать, что можно сделать…

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

Если записей не очень много, то можно перейти на страницу постов в админке, выбрать сразу несколько, затем указать «Изменить», кнопка «Применить» и, ничего не меняя, нажать кнопку «Обновить». Ссылки выбранных статей тоже поменяются.

Пробую, работает ли перенаправление (редирект) со старых ссылок на новые.

У меня была открыта заранее страница еще по старой ссылке:

Поменять все ссылки на ЧПУ в WordPress (с транслитерацией)

Теперь обновляю ее: пишет, что ничего не найдено.

Поменять все ссылки на ЧПУ в WordPress (с транслитерацией)

Выходит, что эта статья была написана зря =)

Будем искать другое решение…

Поменять все ссылки на ЧПУ в WordPress (с транслитерацией)

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

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

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

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

4 + девять =