Поменять все ссылки на ЧПУ в 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-файлов все статьи блога будут иметь прежние ссылки, какие были в дневнике.

Это интересно:  Как подшутить над сайтом с опечатками (редактирование HTML страницы в браузере)

Тут надо отметить, что если ПОТОМ вы поменяете ссылку на какую угодно другую, 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). Сохраняю изменения.

Это интересно:  Расширение Opera SaveFrom.net помощник

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

19 − 10 =