Как сделать что бы языковые добавки оставались после отключения плагина?
У меня на сайте установлен WPML. Каждая конкретная страница имеет ЮРЛ типа site.net/lang/page, то есть для русской у меня страница site.net/ru/page, для английского соответственно site.net/en/page . То есть слаги после языковой приставки одинаковые. Это хорошо работает, учитывая что каждая страница по факту находится в своей поддиректории, и не конфликтует с другой. Но если отключить плагин, страницы лишаются поддиректорий и начинают конфликтовать.
Получается такой треш:
После отключения плагина приставки "ru" и "en" соответственно пропадают.
Страницы, которые имели слаги "page" становятся в редакторе "page-2" (обе). Но эти страницы не сохранены, они по факту становятся черновиками. И попасть на страницу по такому слагу нельзя.
При попытке перейти на страницу site.net/en/page (например на en) получаем 404.
При попытке перейти на site.net/page получаем авторедирект на site.net/page-2 и 404, потому что этой страницы по факту нет. Попасть на site.net/page не возможно. Потому что под этим слагом страницы больше нет, под site.net/page-2 имеем две неработающие страницы.
Но дальше хуже. Если обновить случайно одну из страниц (например плагин упал, а кто то работал со страницей в этот момент), то она получит слаг /page, после чего вторая получит слаг /page-2.
После включения плагина эти страницы по прежнему будут связаны, но одна будет /page, а вторая /page-2. Соответственно, все внутренние и внешние ссылки будут попадать на несуществующий юрл, который, при этом, перестает редиректить на новый (ну оно понятно, с чему ему редиректить).
Что бы не получилось конфуза, если плагин по по какой то причине ляжет и ссылки случайно будут перезаписаны, надо что бы после отключения плагина у страниц по прежнему были юрл c языковыми поддиректориями, пусть и не до конца работающими. Как этого можно добиться? Может есть какие то идеи?
Вы бы лучше описали изначальную задачу, что вы и зачем пытаетесь сделать, с какой целью. Потому что то, что вы сейчас пытаетесь исполнить идет вразрез с любой логикой. Ну и понятно, что отключая плагин ничего работать не будет - оно и не должно работать.
А зачемы вы включаете и отключаете плагин-то? Плагин WPML прекрасно работает. Если вы хотите, чтобы сайт оставался мультиязычным даже после отключения плагина, то наверное стоило изначально реализовать это без плагина.
Например, WPMS (мультисайт), в каждой субдиректории /en /ru по одному ВП сайту будет. И тут плагин WPML не нужен будет вообще. Дальше остается просто грамотно создать перелинковку между сайтами и все.
в каждой субдиректории /en /ru по одному ВП сайту будет
Если вы про режим Multisite, то не совсем так. WP будет один (один экземпляр движка), а виртуальные сайты - вот их сколько угодно. Но там никаких "папок" нету, это всего лишь часть урл, которая реализуется с помощью Rewrite API движка.
"Отлично работает" в моем случае не достаточно хорошо. Мне надо "идеально и 100% безотказно во всех возможных ситуациях". Поэтому лучше лишний раз перестраховаться. Выкатят новый абдейт, и что то ляжет, потом не соберешь... Тем более что даже если сайт из бекапа поднимать есть некоторые плагины, в которых не все настройки сохраняются.
Если все зеркально, кроме языка, то мультисайт не лучший выход.
Но каждой странице на одном сайте можно всегда задать родительскую. То же касается категорий. Можно сделать родительскую EN и все. Но вручную это делать для большого количества страниц - это явно не лучшее решение. Нужен плагин. Которым по сути и является WPML (или polilang, не суть). Но с ним могут случится траблы.
Просто я не очень доверяю плагинам, после того как "топовый" autooptimize сломал в хлам сайт из за конфликта с "топовым" popup maker (мелким шрифтом у которого написано, что его надо добавить в исключения автооптимайза, где то на форуме... но понятно что нельзя прочесть всю документацию к плагину перед его установкой). И самое грустное то, что проблему выявили только после отключения и включения автооптимайза (не один месяц прошел, после установки). Когда на сайте было сделано куча изменений и в бекапе был уже сломанный сайт.
RigidStyle, проблемы часто случаются и в них нет ничего зазорного)) Не первый год использую WPML, autoptimize, popup maker и кучу других плагинов. При возникновении проблем сделайте дебаг. И установите плагин Updraft Plus Backup. Он перед обновлением каждого плагина будет создавать копию сайта вместе с БД.