从外部插件类中删除操作

时间:2013-04-18 作者:Steve

我正在使用一个包含这行代码的插件来添加来自Eazyest_Frontend 类别:

add_action( \'eazyest_gallery_thumbnails\', \'ezg_thumbnails\',5);
我想删除它,在不编辑插件的情况下做一些不同的事情。我认为这增加了我的功能。php文件可能工作:

global $eazyest_frontend;    
remove_action( \'eazyest_gallery_thumbnails\', array($eazyest_frontend,\'ezg_thumbnails\'), 1, 1 );
我可能尝试过一百种不同的方法,改变了优先级等,但都没有效果。

如果我在插件中注释掉原来的添加操作行,它确实具有我所寻求的效果,因此我似乎已经确定了正确的操作。

我不熟悉删除操作,它是如何完成的?

3 个回复
SO网友:tfrommen

也许我误解了你,但你为什么不在你的functions.php:

remove_action(\'eazyest_gallery_thumbnails\', \'ezg_thumbnails\');
如果有一个类函数连接到一个动作,则可以使用类名而不是类对象:

remove_action(
    \'eazyest_gallery_thumbnails\',
    array(\'EazyestFrontendClassName\', \'ezg_thumbnails\')
);
现在,我不明白这为什么行不通。刚刚尝试了我的一个插件的操作。

SO网友:MarkPraschan

类似的技术可以用来隐藏不需要的管理通知。

找到创建要删除的通知的函数的名称,然后在子主题中添加以下行functions.php 文件:

remove_action( \'admin_notices\', \'offending_function_that_is_creating_the_notice\' );
现在,只有特定的nag将被隐藏,而来自该插件的其他(潜在重要的)通知仍会被传递。除非插件开发人员修改创建nag的函数的名称(不太可能),否则这将在将来的更新中保持有效。

SO网友:Steve

感谢所有评论和回答-我刚刚解决了这个问题:

function remove_eazyest_gallery() {
remove_action(\'eazyest_gallery_thumbnails\',     \'ezg_thumbnails\', 5);
}
add_action( \'eazyest_gallery_ready\', \'remove_eazyest_gallery\', 1 );

结束

相关推荐

plugins_url vs plugin_dir_url

我看到WordPress插件在为一些文件夹创建常量时使用plugins\\u url或plugin\\u dir\\u url。一个比另一个好吗?示例:define( \'MEMBERS_URI\', trailingslashit( plugin_dir_url( __FILE__ ) ) ); define( \'WPACCESS_INC\', plugins_url( \'inc\', __FILE__ ) , true );