Як відключити плагін на певній сторінці (за умовою)

Є вже робочий сайт, і на нього потрібно натягнути Лендінгем. Але проблема в тому що на сайті працює один плагін, який додає свої стилі і скрипти на сторінку. На всіх сторінках ці стилі і скрипти потрібні, але ось на Лендінзі вони перебивають мої стилі / скрипти, і це створює цілу купу проблем.

Чи є можливість відключити цей плагін конкретно на одній сторінці?

Altai 8 місяців тому

Загалом знайшов відповідь самостійно. Правда в моєму випадку він не допоміг, але люди пишуть що у них все працює. Ось код:

Тут вся складність в тому, що плагіни підключаються дуже рано. Код нижче робочий, але за певних умов - його потрібно підключити в MU плагіни.

Як це працює

Зараз поясню що і чому. Справа в тому, що плагіни підключаться до події plugins_loaded. ось таким кодом в wp-settings.php:

Тобто всі активні плагіни отримує функція wp_get_active_and_valid_plugins (). яка в свою чергу отримує дані з опції active_plugins.

Так ось, цим хаком ми фільтруємо те, що поверне get_option ( 'active_plugins') - видаляємо звідти непотрібний плагін. Але щоб причепити нашу функцію до потрібного нам хуку, потрібно зробити це до спрацьовування цього хука - підключати його раніше хука, а раніше за всіх плагінів підключаються тільки MU плагіни і тільки звідти ми можемо зачепити функцію до потрібного нам хуку.

Далі, нам потрібно перевірити що ми знаходимося на потрібній нам сторінці. На етапі роботи MU плагінів WP ще взагалі не почав нічого робити - він тільки підключає потрібні файли. Тому там навіть близько ще не працюють умовні функції на кшталт is_page (). А це означає, що обчислити потрібну нам сторінку ми можемо тільки по URL або якось ще. Тому я в прикладі використовував глобальну змінну $ _SERVER [ 'REQUEST_URI']. яка містить поточний запитуваний URL.

Altai 8 місяців тому

Спасибі, зараз спробую розібратися

Схожі статті