Як у wp-rocket включити кешування AdSense оголошень від Google

Як у wp-rocket включити кешування AdSense оголошень від Google

WP Rocket — один із найпопулярніших плагінів кешування для WordPress, який має багатий функціонал і широкі можливості.

WP Rocket може об’єднувати та стискати JavaScript і CSS, формуючи для кожного окремий файл. При цьому Rocket «збирає» весь inline JS/CSS з HTML-коду сайту та також додає його до загальних кешованих файлів. Це, звичайно, зручно, але в деяких випадках, особливо при спільній роботі з іншими плагінами, можуть виникати помилки або некоректна робота.

Завдання, описане в заголовку цієї статті, може здатися доволі дивним. Навіщо кешувати оголошення? Чому їх не можна просто залишити як є й виводити у потрібних блоках? І так, це було б логічно! Але що, якщо ви вирішите використовувати кешування разом із плагіном Flat PM?

Flat PM — плагін для реклами. Менеджер реклами, який дозволяє зручно керувати всією рекламою на сайті з використанням різних умов для її показу.

І ось якраз WP Rocket з Flat PM «дружити» не хоче. Припускаю, що до певного моменту все працювало нормально, допоки розробники Flat PM не вирішили перенести логіку вставки рекламних блоків з регулярних виразів у HTML (точно не перевіряв) на JS і DOM. Це спричинило проблеми з кешуванням Google Ads — у результаті оголошення не відображалися на сайті.

На щастя, все вирішується досить просто. Для цього можна або заглянути в код плагіна WP Rocket, або звернутися в техпідтримку. Другий варіант значно простіший, бо файлів у Rocket чимало, а команда підтримки завжди відгукується й допомагає 🙂

Плагін 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. Цей «ключ» відповідає за ігнорування inline JS-коду оголошень AdSense у HTML. Знайшовши такий ключ у масиві $excluded_inline, ми видаляємо його та повертаємо оновлений масив. Відтепер WP Rocket більше не буде ігнорувати ці оголошення й буде кешувати їх як звичайний JS-код.

Тепер Flat PM буде коректно відображати оголошення Google.

Пости на схожі теми

З вашим WordPress сайтом проблеми? потрібний додатковий функціонал? нестандартний плагін чи згорнути нову сторінку?
Тоді напишіть мені через форму зворотного зв'язку, і я намагатимусь вам допомогти.

Напишіть коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *