如何在不编辑插件核心的情况下将插件限制在某些页面上

时间:2012-09-04 作者:Pollux Khafra

我在使用两个不同的twitter插件时遇到了问题。一个用于登录,另一个用于显示twitter流。问题是他们都使用Oauth,所以我在尝试登录自定义登录模板时出现了一个重新声明错误。由于我只在个人资料上使用推特流插件,所以我想将其功能仅限于个人资料,而不实际更改插件的核心代码。可能的

1 个回复
最合适的回答,由SO网友:Brian Fegter 整理而成

我的做法如下:

识别插件中的所有操作/过滤器挂钩,识别所有正在排队的脚本/样式remove_action, remove_filter, wp_deregister_style, wp_deregister_script您可以使用以下内容:

function foo_disable_plugin(){
    if(is_page(\'PAGE_TITLE OR ID\')){
        remove_filter(\'the_content\', \'PLUGIN_FILTER_NAME\');
        remove_action(\'wp_head\', \'PLUGIN_ACTION_NAME\');
        wp_deregister_script(\'PLUGIN_SCRIPT_NAME\');
    }
}
add_action(\'template_redirect\', \'foo_disable_plugin\', 999999999);
如果这不起作用,您可能必须使插件的一个类可插入。

if(!class_exists(\'CLASS_NAME\')){
    //Class goes here
}

结束

相关推荐

Plugins_url()错误地返回带有www子域的URL

我正在开发一个插件,为了回答这个问题,我们称之为“我的插件”。我的插件目录如下所示:my-plugin/ |- image.jpg |- script.js |- script.php |- plugin.php |- ajax.php 在脚本中。php我有一段代码指定了一些JS。在其中,我需要一个ajax的URL。php。e、 g.:<script type=\"text/javascript\"> foo = jQuer