删除在WordPress主题中不起作用的动作()
我的一个插件有这样的编码删除在WordPress主题中不起作用的动作(),wordpress,Wordpress,我的一个插件有这样的编码 Class Afke{ public function __construct() { add_action( 'init', array( $this, 'setup' ), -1 ); } function setup() { add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) ); } } 我尝试通过添加以下代码来删除theme functions.php中的“add_m
Class Afke{
public function __construct() {
add_action( 'init', array( $this, 'setup' ), -1 );
}
function setup() {
add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) );
}
}
我尝试通过添加以下代码来删除theme functions.php中的“add_meta_box”
function remove_thematic_actions(){
$bcatcf = new Afke();
remove_action( 'add_meta_boxes', array( $bcatcf, 'add_meta_boxes' ));
//remove_action( 'add_meta_boxes', 'add_meta_boxes' );
}
add_action('init','remove_thematic_actions');
但无法删除此操作。请推荐我。您使用过
add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) );
在Afke
类中,但是没有这样的函数add\u meta\u box
。像这样使用你的功能
Class Afke{
public function __construct() {
add_action( 'init', array( $this, 'setup' ), -1 );
}
function setup() {
add_action( 'add_meta_boxes', array( $this, 'my_meta_box_function' ) );
}
function my_meta_box_function() {
// do your things here
}
}
为了消除这种行为,你需要使用
function remove_thematic_actions(){
$bcatcf = new Afke();
remove_action( 'add_meta_boxes', array( $bcatcf, 'my_meta_box_function' ));
}
add_action('init','remove_thematic_actions');
将原始实例分配给变量,而不是创建新实例,这样可以将其作为目标:
Class Afke2{
public function __construct() {
add_action( 'init', array( $this, 'setup' ), -1 );
}
function setup() {
add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) );
}
function add_meta_boxes()
{
add_meta_box(
'test_metabox',
__( 'Test meta box' ),
function() { echo 'Hello world!'; },
'post'
);
}
}
$myAfke = new Afke2;
然后,在其他地方,在另一个插件或主题的functions.php
:
function remove_thematic_actions(){
global $myAfke;
remove_action( 'add_meta_boxes', array( $myAfke, 'add_meta_boxes' ));
}
add_action('init','remove_thematic_actions');
你好,Huseying Babal:谢谢你的回复。但它不起作用。您可以看到安装程序是一个函数,但它没有有效的回调。@Huseying Babal:类名Afke在插件文件中。所以我不能在那里添加任何函数。它是哪个插件?它是你的吗?不,它是一个自定义插件。因此,它们可能随时更新。这就是为什么我需要添加我的theme functions.php。插件中如何实例化类
Afke
;