我试图用我自己的插件类覆盖一个插件类。
插件类是
function yith_woocompare_constructor() {
// stuff here
}
add_action( 'plugins_loaded', 'yith_woocompare_constructor' );
在我的functions。php中我尝试这样做
remove_action( 'plugins_loaded', 'yith_woocompare_constructor', 0 );
// now add your own filter
add_action( 'plugins_loaded', 'new_yith_woocompare_constructor', 0 );
function new_yith_woocompare_constructor()
{
// my stuff here
}
但是它似乎不工作,我做错了什么?
默认优先级为10,但您使用的是0。在你的版本中,你实际上并没有删除动作。
也取决于你的插件加载的点,它无论如何都不会工作。
试试这个
function wpse_plugins_loaded() {
remove_action( 'plugins_loaded', 'yith_woocompare_constructor' );
add_action( 'plugins_loaded', 'new_yith_woocompare_constructor' );
}
add_action( 'plugins_loaded', 'wpse_plugins_loaded', 5 );
function new_yith_woocompare_constructor() {
}
在这个例子中,我们等待所有的插件加载以移除'yith_woocompare_constructor'动作。我们在优先级为5的插件上调用remove_action。这意味着操作将在运行之前(在10上)被删除,然后用自定义函数替换它。
你可以通过mu插件来实现。
创建目录
mu-plugins并行于plugins文件夹并在文件夹中创建文件wp-plugin- extension .php,如果你的插件名是wp-plugin.php然后输入代码
function yith_woocompare_constructor() {
// stuff here
}
add_action( 'plugins_loaded', 'yith_woocompare_constructor' );