因此,我的主题中的一个功能是:
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 );
I want to disable this function.
所以很自然地我去了我孩子主题的功能。php并添加了remove\\u操作:
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 );
而函数仍在做它的事情=[。。。
What am I missing here?
最合适的回答,由SO网友:TheDeadMedic 整理而成
您正在尝试取消挂钩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 );