修改WordPress插件标记

时间:2010-01-07 12:57:30

标签: wordpress wordpress-plugin

是否有一种“良好的工作实践”方式来修改WordPress插件生成的标记而无需编辑插件的核心文件。我预见到的问题是,当您更新插件时,您将修改的标记将被覆盖。

我知道在Drupal中有模板覆盖,但我不太了解WordPress做类似的练习。

任何帮助?

2 个答案:

答案 0 :(得分:0)

可能必须编写插件本身以允许它(尽管见下文)。有几种方法可以执行此操作:您可以让插件查找从任意位置提取的模板文件(例如“uploads / myplugin”)您可以将HTML作为设置存储在数据库中。插件可以用apply_filter钩子编写(就像WordPress本身使用钩子一样)允许外部调用改变输出(例如来自单独的插件或主题的functions.php)。我已经使用了所有这些方法。

如果您正在谈论改变其他人插件的输出,您可能会要求他们实施上述其中一项。 Push推动你可以使用JavaScript来操纵DOM。

答案 1 :(得分:0)

你的问题的答案是钩子和模板。如果你很幸运,插件将使用模板输出,并检查你的主题,看看你是否覆盖了它们,或者它可能有一些过滤器钩子,可以让你修改它的输出。如果你没那么幸运,并且你无法让插件作者为你添加一些,你需要更有创意。

  • 挂钩插件的WordPress查询 制作并改变它们以返回不同的结果。
  • 挂钩进入WordPress get_option()函数,即时更改插件的设置。
  • 挂钩页面内容,并使用preg_replace()来破解HTML。
  • 在页面生成的早期挂钩,调用ob_start()来缓冲页面输出,并挂钩wp_footer以调用ob_end_clean()并使用preg_replace()来破解HTML。

只是一些想法:)

显然,最好使用使用插件而不是对抗它。您应该检查您的插件是否使用模板,如果不是,请搜索对apply_filter()和do_action()的调用。但有时候,需要必须!