我正在尝试从我的子主题functions.php文件中取消挂钩并修改操作。
WordPress插件Sensei在本文档的第86行添加了此操作。
https://github.com/Automattic/sensei/blob/master/includes/class-sensei-modules.php#L86
该操作引用页面下方的一个函数,该函数负责输出动态标题元素。
/**
* Show the title modules on the single course template.
*
* Function is hooked into sensei_single_course_modules_before.
*
* @since 1.8.0
* @return void
*/
public function course_modules_title( ) {
if( sensei_module_has_lessons() ){
echo '<header><h2>' . __('Modules', 'woothemes-sensei') . '</h2></header>';
}
}
我的目标是将html当前输出更改为&#39; Modules&#39;别的什么。
我在我的子主题functions.php文件中尝试了以下内容,但似乎都没有工作。
remove_action( 'sensei_single_course_modules_before', array( 'Sensei_Core_Modules', 'course_modules_title' ), 20);
remove_action( 'sensei_single_course_modules_before', array( 'Sensei()->Sensei_Core_Modules', 'course_modules_title' ), 20);
问题是,我不知道如何确定将哪个初始参数添加到数组中以调用正确的类。因为我在外部访问它,所以我不能使用$this
,因为它正在核心文件中使用。
答案 0 :(得分:0)
要删除操作,您必须找到该类的实例。这是一个假设,因为我无法访问Sensei的源代码,但是因为大多数WordPress插件都使用这种方法,所以很有可能。
当您找到实例名称时,可以使用global $senseiInstance
加载它 - 将其替换为变量的实际名称。
然后您可以使用例如以下代码删除操作:
remove_action( 'sensei_single_course_modules_before', array( $senseiInstance, 'course_modules_title' ), 20);
更多信息可以在例如本文中找到:https://www.sitepoint.com/digging-deeper-wordpress-hooks-filters。
希望这会帮助你!