assorted icon lot

Нуарный лонгрид про WordPress

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

Есть крошечный онлайн-магазинчик, склепанный мною пару лет назад. В тот момент требования заказчика были совсем простые, так что сайт был сделан быстро, никаких особенных проблем и вопросов не создал. И вот теперь мне потребовалось сделать этот же сайт двуязычным. Мне казалось что это задача на пару дней, тем более что похожий опыт, хотя и отдаленный по времени у меня уже был. Как оказалось, я сильно ошибался.

Основные плагины для организации многоязычности, как только на горизонте появляется слово “онлайн-магазин”, сразу становятся весьма платными. Ничего не имею против, но мне нужно было обойтись без допзатрат, потому что сайт действительно маленький, и платить ради перевода названий десятка товаров серьезные деньги не хочется.

Я решил идти другим путем – современный WordPress поддерживает режим Multusite, то есть работу нескольких сайтов на одной WP-инсталляции. Я, честно говоря, никогда им не пользовался, но посчитал что это может быть хорошим вариантом для мультиязычности (это одно из стандартных применений этого режима).

Этот режим вообще говоря  гораздо сложнее “просто WordPress”, что демонстрирует хотя бы то что для его активации нужно дважды править руками файл конфигурации WordPress и один раз .htaccess, отключать и заново включать все плагины. Это все сильно отличается от привычного режима управления из админской панели, но к счастью пошаговая инструкция на русском и английском лежит везде. Скажем, здесь.

А дальше мы заходим на территорию боли. Не буду врать – свежая установка WordPress в MU-режиме работает идеально. Можно выбрать режим сабдоменов (ua.tratata.com), можно директорий (tratata.com/ua), все гладко.

А вот если сайт уже проработал месяц – оказывается что уже все, опция выбора директорий перестает быть недоступна. Почему так – обьясняется нарочито невнятно (тем более что вот здесь инструкция как поменять этот режим туда и сюда). Другое дело что у меня возникли свои проблемы с сабдоменами – я далеко не сразу понял (большое спасибо всем помогавшим!) что и где прописать чтоб эти сабдомены начали работать. Хоть они и саб, но DNS, оказывается, никто не отменял. Ну а еще, разумеется, SSL был в свое время куплен вполне обыкновенный, не wildcard, так что сабдомены внезапно оказывались без шифрования.

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

Захожу в Customizer – а там ничего. В буквальном смысле – страница и настройки не загружаются. Так, думаю, небось намудрил когда переправлял сабдомены на директории.

Разворачиваю заново, худо-бедно решаю проблемы с сабдоменами и DNS, накатываю контент, вношу изменения, лезу в Customizer – ТО ЖЕ САМОЕ, все пусто. И это серьезная неприятность – лет пять назад, когда темы были проще и дубовей, можно было плюнуть, но сейчас без настроек Customizer нормально тему не отрегулируешь. Это проблема, которая вылезет при любой попытке что-то изменить во внешнем виде сайта.

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

Словом, в результате мне пришлось сделать так как я не хотел – просто и очень грязно. Я установил вторую инсталляцию WordPress внутри директории из которой должна появляться вторая языковая версия и склонировал туда сайт.


Какие я выводы сделал из этой истории?

  1. В сайтостроении я застрял между тем уровнем умений что имеет веб-мастер, но не дотягиваю до настоящего разработчика. Все-таки программист вместо моих метаний запустил бы отладку и проследил бы что происходит с Customizer, я почти уверен что там была небольшая проблема, что-то вроде неправильно прописанного пути к странице. Нужно поднимать свой уровень, хотя бы чуток подучить JS.
  2. Первым плагином, который ставится на свежую инсталляцию должна быть система автоматического бэкапа в удаленную систему хранения. Ну тот же Updraft например. Причины – не только в том чтоб иметь возможность откатиться назад когда накосячил, это святое. Но даже когда ты просто поставил и потом снес плагин – в базу данных попало некоторое количество мусора, надо не забывать и не лениться откатывать назад базу к чистому состоянию.