Как я переехал с WPGlobus на WP Multilang

Мой краткий рецепт, который, кажется, сработал.

UPDATE:
Я поизучал исходники плагина — по идее, в текущем состоянии, он совместим с форматом WPGlobus, так что, возможно, после установки WP Multilang всё будет работать без манипуляций с базой.

Однако, существует открытый PR с оптимизациями парсинга, исключающий совместимые теги из поддержки.

Короче, если плагин без проблем не встал сразу — то можете попробовать мои махинации, если после установки все работает нормально, то думаю можно пока что не заморачиваться.


Зачем вообще мне понадобилось переезжать?

Если кратко – жалко денег и лень делать самому.

Дело в том, что в свое время я сделал плагин, добавляющий возможность разделения статусов публикации для разных языков (в wpglobus это доступно в премиум), но плагин был рассчитан на classic editor.

При этом я очень полюбил Gutenberg, но не настолько, чтобы переделывать свой плагин под него.

Именно поэтому, freeocart я долгое время не обновлял до пятой ветки и почти все посты делал через classic editor.

Если вам не нужны раздельные статусы, или вам не жалко заплатить 100$/год за WPGlobus Premium, то возможно вам этот рецепт не понадобится, поскольку сам по себе WPGlobus с гутенбергом сейчас нормально дружит.

Недавно на просторах сети наткнулся на крайне интересный плагин WP Multilang, в котором нужные фичи уже встроены и он прекрасно работает с Gutenberg, поэтому мне показалось проще всего отредактировать базу данных под его формат (а вообще, можете посмотреть более детальный обзор с хаками здесь — https://ikfi.ru/article/dobavlyaem-multiyazychnost-v-wordpress-3-wp-multilang).

Ок, я хочу слезть с иглы WPGlobus

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

Делаем дамп базы данных, например утилитой mysql_dump:

mysqldump -udb_user -p mydb > mydb.sql


Далее работаем с дампом базы данных через редактор vim:

vi mydb.sql


… в редакторе переходим в командный режим (вводим двоеточие) и пишем шаблон замены …

%s/{(:\w\{2})}/[\1]/g


Это регулярное выражение заменит все теги WPGlobus вида {:EN}/{:RU}/etc на совместимые с WPMultilang – [:EN]/[:RU]/etc.

Теперь сконвертируем все закрывающие теги:

%s/{\:}/[:]/g


Теперь нужно убрать промежуточные теги глобуса – плагин использует формат:

{:ru}…{:}{:en}…{:}, тогда как в мультилэнге [:ru]…[:en]…[:], для этого выполняем такую замену:

%s/\[:\]\(\[:\w\{2}\]\)/\1/g


Как только все команды выполнены, я рекомендую дополнительно визуально проверить, чтобы не было ошибок.

Теперь нужно сохранить полученный файл, для этого снова переходим в командный режим, нажатием двоеточия, пишем «x», либо «wq» (без кавычек), жмем Return.

Поздравляю, вы сохранили файл и вышли из редактора vi! ?

Теперь нужно залить исправленный дамп обратно в mysql:

cat mydb.sql | mysql -udb_user -p mydb

База подготовлена!

Теперь нужно активировать плагин WP Multilang, деактивировать WPGlobus и можно работать!

Комментарии

comments powered by Disqus
Яндекс.Метрика