Intereting Posts
очень медленный запрос WordPress с запросом по умолчанию Сообщение не публикуется после нажатия кнопки «Опубликовать» в пользовательском типе сообщения Как переписать post slug персонализированного сообщения типа post Шрифт внутри текстового виджета не вызывает стиль очереди Страница категории пользовательских почтовых сообщений WordPress Как создать поле, только если поле meta сообщения имеет определенное значение? Добавить столбец wp_editor в викторе ломается после сохранения (никаких кнопок и визуальных вкладок не сломано) Как перезаписать встраивание youtube? Проблема с wp_query с post_type = page Могу ли я подключить функцию класса uninstall к глобальному var, объявленному в основном файле плагина? Количество сообщений в блоге вызывает неразумное поведение Как отображать дочерние страницы в ограниченном детском контенте? Сообщения не разбиваются на страницы добавлять ссылки с уникальной числовой строкой

Как можно обновлять тему на живом сайте без перерывов?

Поэтому у меня есть сайт на основе WordPress с пользовательской дочерней темой Genesis. После того, как сайт появится в прямом эфире, нам, очевидно, придется периодически вносить изменения в код дочерней темы – изменение CSS и тому подобное. Это проблемы, с которыми я столкнулся:

  1. У меня нет доступа к оболочке или FTP, поэтому я не могу просто заменить файлы на сервере (они хотели использовать одного из этих выделенных хостинг-провайдеров WordPress для обеспечения безопасности и удобства обслуживания).

  2. Невозможно обновить активную тему «на месте» при использовании функции загрузки через Интернет (это можно сделать только с темами, установленными с помощью репозитория WordPress).

  3. Чтобы обойти вышеупомянутое ограничение, я подумал, что, возможно, я просто поставлю хэш-версию git или что-то в имени темы каждый раз, когда я создам zip-файл, который заставит WordPress рассматривать его как отдельную тему, а затем я могу просто переключиться от старого до нового. Это работает, за исключением того, что это заставляет WordPress перезагружать некоторые из его настроек (в частности, какое меню установлено как «панель навигации»).

Чтобы быть ясным, я НЕ спрашиваю, как я могу проверить / увидеть изменения, прежде чем создавать их на производстве (у меня есть сервер разработки), моя проблема связана именно с механизмом внесения изменений.

Учитывая мои обстоятельства, есть ли способ сделать это, не вызывая прерывания / необходимости изменять конфигурацию при каждом обновлении?

Думаю, я собираюсь ответить на свой вопрос:

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

Но с учетом этого ограничения создание и загрузка «новых» тем, по-видимому, является лучшим выбором. Принимая это, возникает вопрос, как решить проблему, о которой я упоминал в № 2?

Ответ выглядит следующим образом:

Эта проблема является ограничением самого WordPress ( трекер № 18588 ), который, вероятно, будет исправлен в будущей версии. До тех пор существует программная работа, предоставляемая пользователем в связанном билете (а также здесь на Stack Exchange ), который может использоваться для передачи настроек между темами при переключении. Приспособив этот код к моей теме, я обнаружил, что обход достаточен для моего использования.

ура

В этом случае я бы создал новую тему.

Но будьте осторожны с живым обновлением, это может превратиться в ковбойское кодирование. Сделайте свое изменение на локальном хосте, а затем загрузите новую тему в виде zip-файла с помощью администрирования и активируйте его.

Это будет точная копия прежней темы, но с изменением.

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

Если ваша ссылка быстрая, это может быть сделано в течение одной минуты.