Intereting Posts
Разбиение страницы на домашней странице для настраиваемого цикла загружает один и тот же контент Как получить last_updated и newest_blogs в WP 3.0 Возможно ли установить изображение с внешним URL изображения Массовое удаление пользователей по ролям? SQL? Попытка исправления повторного ввода формы с помощью PRG (Ошибка получения: невозможно изменить информацию заголовка – уже отправленные заголовки) Попытка ввести метаданные twitter в <head> с помощью действия wp_head в functions.php – get_the_excerpt () возвращает null Перенаправить старый домен с параметрами запроса Таблица не создана в WAMP Есть ли недостатки, чтобы не использовать get_header (), get_sidebar и get_footer ()? Роль пользователя "none" Как я могу отображать пользовательские типы сообщений под несколькими видами? dropdowboxes с предварительно выбранными пользовательскими полями, которые фильтруют результаты в соответствии с потребностями seach Лучший портфолио / галерея / карусель для слайдшоу с толстым боксом? Удаление новых страниц с помощью роли редактора Перемещение домена. WordPress.com в новый домен

remove_action не работает, даже после изменения приоритета

Поэтому одна из функций моей темы:

public function job_manager_job_filters_distance() { //Show some HTML } 

И где-то еще в документе лежит:

 add_action( 'job_manager_job_filters_search_jobs_end', array( $this, 'job_manager_job_filters_distance' ), 0 ); 

Я хочу отключить эту функцию.

Поэтому, естественно, я пошел на функции child.php моей дочерней темы и добавил remove_action :

 remove_action( 'job_manager_job_filters_search_jobs_end', 'job_manager_job_filters_distance' ); 

Это не сработало. Затем я попробовал разные приоритеты для удаления:

 remove_action( 'job_manager_job_filters_search_jobs_end', 'job_manager_job_filters_distance', 20 ); 

Все еще нет. Затем я попытался обернуть его в функцию, которая запускает после загрузки темы:

 function remove_listify_junk() { remove_action( 'job_manager_job_filters_search_jobs_end', 'job_manager_job_filters_distance' ); } add_action( 'after_setup_theme', 'remove_listify_junk', 999 ); 

И функция все еще делает это вещь = […

Что мне здесь не хватает?

Вы пытаетесь отцепить функцию PHP в отличие от метода экземпляра (класса) – см. Здесь:

 array( $this, 'job_manager_job_filters_distance' ) 

… это фактический обратный вызов, зарегистрированный на крючке. Чтобы отцепить, вам нужно то же самое (ссылка на экземпляр).

Если вы пытаетесь отцепиться от класса, это так же просто, как использовать вышеизложенное. В противном случае вам нужна ссылка на экземпляр – найдите в коде что-то вроде следующего:

 $my_class = new Name_Of_Class; 

… тогда вы будете запускать:

 remove_action( 'job_manager_job_filters_search_jobs_end', array( $my_class, 'job_manager_job_filters_distance' ) , 0 );