创建将其他插件wp_head操作移动到wp_footer的插件

时间:2011-12-02 作者:David O\'Sullivan

我正在努力在wordpress上实现jQm,遇到了大多数插件无法在jQm ajax加载页面上工作的障碍。

然而,以sharethis插件为例,我发现如果我更改此选项,它将在ajax加载的页面上运行

add_action(\'wp_head\', \'st_widget_head\');
到这个

add_action(\'wp_footer\', \'st_widget_head\');
在sharethis中。php文件

问题是,我想尝试这样做,保持初始插件文件不变(这样wp更新就能工作,这样我就可以将所有jQm特定的插件修改更改保存在一个地方——这样,如果jQm关闭,它们都可以关闭)

所以我认为我首先需要做的是一个最后加载的插件,它移动我指定的任何插件,将它们的add\\u action wp\\u head移动到add\\u action wp\\u footer。

我很欣赏这是目前一个非常暴力的解决方案,但到目前为止,这是我在似乎无法穿透的情况下发现的唯一一个曙光,否则需要重新编写我用于与jQm一起工作的所有插件。

因此,关于这方面的任何想法都将非常有助于帮助我创建一个更可靠和可维护的解决方案,比如我和社区可以开发和维护的“jQm插件修复程序插件”。。。

1 个回复
SO网友:t31os

移除动作,然后将其添加回另一个挂钩上。

我认为你唯一关心的是确保你做得足够晚,这样动作就可以上钩了,应该可以使用plugins_loaded 钩子(因为它在加载插件之后运行)。

add_action( \'plugins_loaded\', \'juggle_sharethis_action\' );

function juggle_sharethis_action() {
    remove_action( \'wp_head\', \'st_widget_head\' );
    add_action( \'wp_footer\', \'st_widget_head\' );
}
操作
http://codex.wordpress.org/Plugin_API/Action_Reference

添加操作
http://codex.wordpress.org/Function_Reference/add_action

删除操作
http://codex.wordpress.org/Function_Reference/remove_action

结束