О прелестях вордпресса можно писать долго и нудно, но иногда при обновлениях разработчики меня удивляют, отключая полезные (прелести) вещи, например, как «выключение браузерного кеша в админке», что случилось в последнем обновлении 4.6.* и до сих пор присутствует.
Получается следующая картина — вы активируете новую тему и при активации должны появится новые элементы меню, например, настройки темы и другие, но при активации этого не будет, потому что ваш браузер закешировал страницу и только через Ctrl + F5 вы сможете получить последний результат. Так могут затираться редакции постов, любые изменения в полях, которые не обновятся до новых данных. Для тех, кому интересно решение проблемы и мини простой плагин, прошу под кат.
Меня долго это дело не устраивало, так как я работаю с большим количеством сайтов, сделанных на WordPress, и я решил найти в чем проблема. Собственные сайты я откатил на старую версию, где все работало корректно и начал сравнивать в чем отличие, оказалось, что вся проблема в простом заголовке Pragma: no-cache, который разработчики в новой версии просто вырезали из исходного кода, круто да? )
А теперь давайте решим эту проблему, кстати, сам плагин можно найти через поиск плагинов в админке по запросу «wp admin no cache», либо по ссылке . Плагин не требует каких-либо настроек, просто активируете и он заработает.
Для реализации плагина нам потребуется переопределить массив заголовков, которые передаются в функцию nocache_headers через функцию wp_get_nocache_headers.
Создадим класс и метод init, который будет запускать наш плагин, вызывая один единственный фильтр.
$WPAdminNoCache = new WPAdminNoCache();
$WPAdminNoCache->init();
class WPAdminNoCache {
public function init() {
add_filter('nocache_headers', array($this, 'addHeader'));
}
public function addHeader($headers) {
$headers['Pragma'] = 'no-cache';
return $headers;
}
}
Плагин готов. Очень маленький, но очень полезный.
Автор: Grom1k