Как очистить кеш WordPress с сервера/FTP/удаленного расположения

17 сент. 2016 г., 00:42:37
Просмотры: 18.1K
Голосов: 2

Обычно я не работаю с WordPress, и мне сложно разобраться во многих вещах.

Я добавил одну строку пользовательского PHP в файл шаблона дочерней темы и забыл поставить точку с запятой. Теперь сайт не загружается и зависает на вечной загрузке. В Drupal в таких случаях я просто пересохраняю файл и обновляю страницу, но в WordPress это, видимо, не работает.

Где хранится кеш WordPress по умолчанию и какие файлы нужно удалить/изменить, чтобы заставить WP очистить свои кеши? У меня нет доступа к сайту — он не загружается. Единственный доступ — через FTP. Если я не могу просто удалить кеш, какие у меня есть варианты в текущей ситуации?

5
Комментарии

В WordPress нет встроенного кеширования страниц, поэтому вам нужно определить используемый плагин кеширования и исходить из этого. Однако это очень локализованная проблема. Отсутствие доступа к панели управления и прямое редактирование файлов на сервере — это верный путь к катастрофе.

Dave Romsey Dave Romsey
17 сент. 2016 г. 00:50:46

@DaveRomsey У меня есть резервная копия, и, похоже, в списке плагинов нет плагина кеширования. Значит ли это, что WordPress по умолчанию ничего не кеширует? Что я могу сделать, чтобы решить эту проблему? Разве опечатка в PHP-файле шаблона может привести к неустранимой ошибке? Это звучит как критическая ошибка, полностью ломающая работу. Есть ли какой-то аварийный механизм на случай, если эта опечатка была внесена через редактор в админке?

Altef four Altef four
17 сент. 2016 г. 00:57:10

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

Dave Romsey Dave Romsey
17 сент. 2016 г. 01:07:37

Я удалил дочернюю тему, затем загрузил её обратно через FTP, и теперь всё работает. Очень странно. Нет, мне просто было интересно, если бы я теоретически сделал ту же опечатку в бэкенде, а не редактировал через FTP, привело бы это к такому же краху? И я предпочитаю не редактировать через встроенный редактор в WordPress, потому что он очень медленный и лагает, мне нужна подсветка синтаксиса, а также некоторые файлы, которые мне нужно править (плохо захардкоженные PHP-файлы в премиум-теме), не видны в редакторе WordPress, поэтому нужен доступ через FTP.

Altef four Altef four
17 сент. 2016 г. 01:31:50

Да, скорее всего, вы столкнётесь с той же проблемой, если допустите фатальную ошибку в теме, отредактированной через FTP. Лично я отключаю редакторы тем и плагинов, потому что их использование просто чревато проблемами. Я добавил предложенное исправление в качестве ответа. Пожалуйста, отметьте его как решение, если оно действительно помогло (это поддерживает чистоту WPSE).

Dave Romsey Dave Romsey
17 сент. 2016 г. 04:46:00
Все ответы на вопрос 1
2

В WordPress нет встроенного кэширования вывода исходного кода страниц. При стандартной установке изменения в шаблонах должны отображаться немедленно.

Если этого не происходит, есть несколько возможных причин:

  • установлен плагин статического кэширования страниц, который отдаёт устаревшую версию (конкретная реализация кэша зависит от плагина);
  • между сайтом и интернетом есть кэширующий слой, например обратный прокси, предоставляемый хостингом;
  • на сайте настроены HTTP-заголовки таким образом, что браузер (или возможно прокси-сервер на маршруте) кэширует данные слишком агрессивно;
  • в PHP установлен opcode-кэш (это нормально/хорошо), но он настроен на слишком агрессивное/долгое кэширование (редко), что может приводить к игнорированию изменений в исходном коде PHP-файлов в течение некоторого времени.
17 сент. 2016 г. 21:02:52
Комментарии

Добавлю, что я не думаю, что страницы ошибок используют HTTP-код 200 (или, по крайней мере, они не должны этого делать), и поэтому кеширование страницы ошибки не должно происходить. С другой стороны, PHP 5.6 (?) ввел кеширование разобранного PHP-кода, и из-за сбоя в конфигурации сервера изменение в файле не было обнаружено, и повторный разбор не произошел

Mark Kaplun Mark Kaplun
17 сент. 2016 г. 21:16:03

Я добавил кеш opcode как возможную причину.

Rarst Rarst
17 сент. 2016 г. 21:24:50