【发布时间】:2010-01-07 12:57:29
【问题描述】:
是否有一种“良好的工作实践”方法来修改 WordPress 插件生成的标记,而无需编辑插件的核心文件。我预见的问题是,当您更新插件时,您将修改的标记会被覆盖。
我知道在 Drupal 中有模板覆盖,但我对 WordPress 的了解还不够,无法进行类似的练习。
有什么帮助吗?
【问题讨论】:
标签: wordpress
是否有一种“良好的工作实践”方法来修改 WordPress 插件生成的标记,而无需编辑插件的核心文件。我预见的问题是,当您更新插件时,您将修改的标记会被覆盖。
我知道在 Drupal 中有模板覆盖,但我对 WordPress 的了解还不够,无法进行类似的练习。
有什么帮助吗?
【问题讨论】:
标签: wordpress
可能必须编写插件本身以允许它(尽管见下文)。有几种方法可以做到这一点:您可以让插件查找它从任意位置提取的模板文件(例如“uploads/myplugin”)您可以将 HTML 作为设置存储在数据库中。该插件可以使用 apply_filter 钩子编写(就像 WordPress 本身使用钩子一样)以允许更改输出的外部调用(例如,来自单独的插件或主题的 functions.php)。这些方法我都用过了。
如果您正在谈论更改其他人插件的输出,您可能会要求他们实现上述之一。紧要关头你可以使用 JavaScript 来操作 DOM。
【讨论】:
您的问题的答案是钩子和模板。如果幸运的话,该插件将使用模板作为其输出,并检查您的主题以查看您是否已覆盖它们,或者它可能有一些过滤器钩子可让您修改其输出。如果你不那么幸运,并且无法让插件作者为你添加一些内容,那么你需要获得更多创意。
只是一些想法:)
显然,最好使用插件而不是反对它。您应该检查您的插件是否使用模板,如果没有,请搜索对 apply_filter() 和 do_action() 的调用。但有时,需求是必须的!
【讨论】: