修改WordPress插件标记

问题描述:

是否有一种“良好工作习惯”的方式来修改WordPress插件在不编辑插件核心文件的情况下生成的标记。我预见到的问题是,当你更新插件时,你会修改的标记被覆盖。修改WordPress插件标记

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

任何帮助?

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

如果你正在谈论改变别人的插件的输出,你可能会要求他们实现上面的一个。推动来推你可以使用JavaScript来操纵DOM。

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

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

只是一些想法:)

显然,这是最好的工作插件比反对它。你应该检查你的插件是否使用模板,如果没有,搜索对apply_filter()和do_action()的调用。但有时候,需要必须!