Давайте напишем маленький, но очень полезный плагин для WordPress 4.6.*?

в 14:55, , рубрики: plugin, wordpress, плагин

О прелестях вордпресса можно писать долго и нудно, но иногда при обновлениях разработчики меня удивляют, отключая полезные (прелести) вещи, например, как «выключение браузерного кеша в админке», что случилось в последнем обновлении 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

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js