Как в wp-rocket включить кэширование AdSense объявлений от google

Как в wp-rocket включить кэширование AdSense объявлений от google

WP-rocket — один из самый популярных плагинов кэширования для WordPress, имеющий богатый функционал и возможности.

ВП-Рокет имеет возможность объединять и сжимать JavaScript и css формируя для каждого из них свой файл. При этом, рокет «собирает» весь inline js/css с html кода сайта, и так же добавляет его в общие кэшируемые файлы. Это конечно удобно, но в некоторых случаях, а особенно при его совместной работе с другими плагинами, могут возникать ошибки или не корректная работа.

Сама задача, указанная в заголовке данной статьи может показаться довольно странной. Зачем нужно кэшировать объявления, почему их нельзя оставить так как есть и просто выводить в нужных блоках? Так то оно так, и все верно! Но что, если вы решите использовать кэширование совместно с плагином Flat PM?

Flat PM — плагин для рекламы. Менеджер рекламы, позволяющий удобным способом управлять всей рекламой на вашем сайте используя различные условия для ее показа.

Как раз вот рокет с флетом дружить и не хочет. Догадываюсь, что до некоторых пор все работало нормально, пока разработчики ФлетПМ, не решили перенести формирования логики вставки рекламных объявлений с регулярных выражений в HTML (точно не знаю, не проверял) на JS и DOM. Что повлекло за собой проблемы с кэшированием гугл объявлений. И как следствие, объявлений не отображались на сайте.

К счастью, все решается достаточно просто, для этого нужно или изучить код плагина wp-rocket, или написать в техподдержку. Второе куда проще, т. к. файлов в рокете не мало, а разработчики отзывчивые и всегда приходят на помощь).

Плагин рокета расширяет свой функционал набором фильтров и хуков, позволяющий изменить логику формирования кэша. В нашем случае, мы будем использовать фильтр «rocket_excluded_inline_js_content», на входе он принимает массив ключей, данные которых не будут попадать в общий кэшированный js файл.

add_filter('rocket_excluded_inline_js_content', function($excluded_inline) {

	 if(($delete_key = array_search('adsbygoogle', $excluded_inline)) !== false)
	 {
		 unset($excluded_inline[$delete_key]);
	 }
	
	return $excluded_inline;
}, 10, 1);

В коде выше, среди множества значений массива, мы ищем «adsbygoogle». Этот «ключ» отвечает за игнорирование в html, inline-js кода AdSense объявлений. Найдя ключ такого значения в массиве «$excluded_inline», мы удаляем его. И возвращаем массив «$excluded_inline» из фильтра. Теперь, вп-рокет не будет игнорировать такие объявления, а будет их кэшировать как и обычный JS код.

Теперь, Флат ПМ будет корректно отображать гугл объявления.

Как в wp-rocket включить кэширование AdSense объявлений от google
Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *