覆盖插件类

时间:2014-07-07 17:02:51

标签: php wordpress plugins

我正在尝试用自己的方法覆盖插件类。

插件类是

  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 
     }

但它似乎没有起作用,我做错了什么?

2 个答案:

答案 0 :(得分:0)

默认优先级为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上),然后将其替换为自定义函数。

答案 1 :(得分:0)

你可以通过mu-plugins来实现。

创建目录名称

插件文件夹和文件夹创建文件并行的

mu-plugins wp-plugin-extended.php ,如果你的名字是 wp-plugin.php  并做代码

"localhost"