Удаление фильтра в WP, когда callback — метод класса плагина

При программировании в WP мы очень часто добавляем какие то фильтры и действия. А если посмотреть в код любого плагина — это сборники реализаций зацепок.

Не всегда авторы дают возможность гибко управлять поведением их плагина через настройки. Тогда приходится делать это программно, например, отменяя фильтры. Но здесь есть одна проблема.

Текущие рекомендации по конструированию плагинов к WP советуют создавать плагин в виде класса. Это как минимум помогает избежать конфликтов имен методов. При этом функция API remove_filter() морально устарела и позволяет использовать её только для процедурного варианта объявленных фильтров.

Поделюсь вариантом функции remove_filter(), позволяющим удалять фильтры, объявленные плагинами-классами.

Функция сканирует глобальный массив фильтров и вызывает встроенную remove_filter() с требуемыми параметрами.

Для вызова нужно знать имя фильтра (например, ‘the_content’), имя класса, и название метода, используемого как callback функция фильтрации.

Написать комментарий

Мало букафф? Читайте есчо !

Иерархия шаблонов в WordPress

Март 23, 2017 г.

Шаблоны в рамках темы Wordpress, как и во многих других CMS, имеют строго определенную иерархию. Что это означает на практике? Когда WP требуется определить ...

Читать

Contact Form 7 - добавим галочку на согласие по обработке персональных данных

Июль 21, 2017 г.

Вступившие в силу поправки (с 01.07.2017) федерального закона ФЗ 152 "О защите персональных данных" требуют, чтобы владельцы сайтов информировали пользователя ...

Читать

 

Комментарии к «Удаление фильтра в WP, когда callback — метод класса плагина»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: