- Вопрос или проблема
- Ответ или решение
- Проблема с неверным обновлением темы в WordPress: Подробный анализ и решение
- Введение
- Причины проблемы
- Рекомендуемые решения
- 1. Переименование каталога темы
- 2. Применение префиксов
- 3. Отключение автоматических обновлений
- 4. Использование плагинов для блокировки обновлений
- Заключение
Вопрос или проблема
У нас есть полностью кастомная тема, которую мы разработали сами. Недавно обновление WordPress начало сообщать, что тема устарела.
Когда я исследовал это предполагаемое обновление, оно ссылалось на похожую тему в каталоге тем WordPress, но которая не разрабатывалась нами.
Мы обычно обновляем наши темы вручную, либо через файловую систему, либо по FTP. Мы никогда не отправляли нашу тему в каталог WordPress, и у нас нет механизма или инфраструктуры, чтобы наши темы “сигнализировали” о проверке обновлений.
Что здесь происходит? Как мне остановить ложное сообщение об обновлении темы? Я действительно хочу остановить это поведение, чтобы предотвратить слишком активного клиента, пытающегося обновить тему на эту и сломать свой сайт.
Когда речь идет о разработке собственного кода, лучше всего сделать его вашим, а не просто иметь авторские права и тому подобное.
Как уже упомянул @Rarst, первое, что нужно проверить, это папка с темой. Я сталкивался с такой же проблемой раньше, и изменение папки темы решило ее для меня.
Но для будущих проектов вам следует начать с префиксации кода. Это означает, что вы должны использовать префикс имени вашей темы, функций, классов и т.д. своим именем или именем вашей компании. Меньше вероятно, что кто-то когда-либо опубликует тему с названием burgi-professional
, но общее название, такое как professional
, может существовать в любое время.
Это также касается имен классов и функций. Префиксируйте ваши функции так:
function burgi_get_theme_options( ){ ... }
Таким образом, вероятность столкнуться с подобными проблемами будет ниже. То же касается CSS классов и HTML атрибутов ID.
Инфраструктура WordPress и предположения по умолчанию кода ядра действительно действительно недружелюбны к частным индивидуальным плагинам и темам в этом плане.
Хотя “переименовать папку” — это распространенный совет, он не гарантирует ничего. Во-первых, точный алгоритм совпадения является закрытым. Во-вторых, а что, если он совпадет с другой темой позже?
Единственный надежный способ — явным образом исключить ваши расширения из проверок обновлений WP с помощью кода. Что, кстати, делать с ядром WP невероятно неудобно.
Лично я устал от этой проблемы и в конечном итоге написал небольшой плагин Update Blocker, чтобы не изобретать велосипед заново.
Как отключить автоматические обновления
Вы не должны отключать автоматические обновления, если это абсолютно не требуется!
-
Войдите в свою панель управления cPanel.
-
Откройте файловый менеджер и перейдите к файлам установки WordPress. Вам нужно будет найти файл wp-config.php.
-
После того как вы найдете файл, выберите его и используйте опции редактирования внутри файлового менеджера для продолжения.
-
Измените файл wp-config.php. Вставьте следующую строку после первоначальных операторов “define”, прямо над уникальными ключами аутентификации и солями.
define( 'AUTOMATIC_UPDATER_DISABLED', true );
-
Нажмите на Сохранить в правом верхнем углу редактора, чтобы сохранить ваши изменения.
(см. inmotionhosting.com: enable-disable-wp-updates/ для иллюстрированной версии)
Ответ или решение
Проблема с неверным обновлением темы в WordPress: Подробный анализ и решение
Введение
Недавно вы столкнулись с проблемой, когда ваша кастомная тема, разработанная in-house, начала показывать сообщения о том, что она устарела. Это явление может вызывать беспокойство у пользователей, которые могут попытаться обновить тему, особенно если WordPress предлагает обновление, ссылаясь на похожую тему в официальном каталоге. В этой статье мы разберем причины возникновения данной проблемы и предложим шаги по ее устранению.
Причины проблемы
-
Конфликт имен: Как указано в вашем описании, существует вероятность, что название вашей темы совпадает с названием другой темы, опубликованной в каталоге WordPress. Это происходит, когда WordPress использует алгоритм сопоставления, который может случайно идентифицировать вашу тему как нужную для обновления.
-
Отсутствие механизма обновления: Вы упомянули, что ваша тема не подключена к какому-либо сервису для проверки обновлений, что само по себе является правильным подходом для защиты вашей разработки. Однако отсутствие надежного способа проверки обновлений может приводить к неразберихам, особенно если названия совпадают.
Рекомендуемые решения
1. Переименование каталога темы
Первое решение, которое стоит рассмотреть, — это изменение имени папки вашей темы. Это может минимизировать риск конфликта с другими темами. Однако, как упоминается, это не гарантирует полного устранения проблемы, так как алгоритм сопоставления может измениться.
2. Применение префиксов
Для предотвращения подобных ситуаций в будущем рекомендуется использовать префиксы в именах функций, классов и идентификаторов CSS. Например, вместо использования функции с именем get_theme_options
, используйте mycompany_get_theme_options
. Это уменьшает вероятность совпадения с функциями других разработчиков и создает уникальный контекст для вашего кода.
3. Отключение автоматических обновлений
Если вышеуказанные решения не помогут и проблема продолжит возникать, вы можете временно отключить автоматические обновления. Для этого выполните следующие шаги:
- Войдите в панель управления вашего хостинга (например, cPanel).
- Откройте файловый менеджер и найдите файл
wp-config.php
. - Вставьте следующую строку в файл перед секцией с уникальными ключами:
define( 'AUTOMATIC_UPDATER_DISABLED', true );
- Сохраните изменения.
Это предотвратит передачу запросов на обновление для вашей темы, что может защитить её от случайных изменений.
4. Использование плагинов для блокировки обновлений
Как альтернатива, можно установить плагины, такие как Update Blocker, которые предоставляют дополнительные возможности для управления обновлениями и могут упростить процесс.
Заключение
Ситуация с неверным обновлением кастомной темы в WordPress может вызывать множество трудностей, но её решение возможно с помощью вышеизложенных рекомендаций. Важно не только устранить текущую проблему, но и принять меры для предотвращения её повторения в будущем. Обязательно внедрите практики кодирования, которые помогут избежать конфликтов, и всегда будьте внимательны к названиям ваших тем и функций. Это не только сохранит целостность вашего проекта, но и обеспечит лучшее взаимодействие с клиентами.