使用include()代替get_footer()

时间:2016-06-01 23:59:36

标签: php wordpress

简单的问题。在Wordpress模板中,有没有理由我不能使用include()并使用get_footer()

让我们说我想在我的模板目录中有一个子文件夹,其中包含我的所有组件。这似乎工作正常,但也许我错过了一些东西。

2 个答案:

答案 0 :(得分:3)

您根本不应在Wordpress主题中使用include()

原因是Wordpress的架构非常易于插拔 - 在整个核心,插件和主题中,大多数组件都可以通过actionsfilters与其他组件进行交互。

虽然get_footer()看似简单,但它运行的功能允许覆盖部分主题。在这种情况下,locate_template()允许子主题附带footer.php文件,以覆盖主要主题设置的文件。

此外,get_footer()本身允许在Wordpress主题中包含多个页脚文件的灵活性,以便在需要时可以在特定模板上调用略有不同的页脚(例如。{{1调用get_footer('alternative') - 然后它也可以被子主题覆盖。)

值得注意的是,您还应该确保您的页脚模板可以调用其中的wp_footer() - 最好是在footer-alternative.php标记之前。这可以追溯到我上面提到的有关动作和过滤器的内容:在这种情况下,插件或Wordpress核心(例如脚本包含)连接到页脚的任何函数都将按预期运行(顺便说一下,</html>本身也会运行get_footer()动作,允许例如一个插件覆盖调用哪个页脚模板 - 这是使用get_footer)的另一个原因。

最后,关于在您的主题中根本不使用get_footer(),如果您发现自己需要包含另一个模板文件,而不是页眉或页脚,{{3为此而存在。虽然有时使用本机PHP函数而不是Wordpress架构提供的包装器似乎更容易,但最终做“Wordpress方式”意味着您的主题将更好地与插件和未来版本的Core进行交互,并且更易于维护由他人。并且,你可能会帮助避免为自己造成奇怪的错误!

答案 1 :(得分:2)

get_footer()(点击源代码链接)在后台不做任何事情,而不是找到并包含文件。

get_footer()然后拨打locate_template(),然后拨打load_template(),其中只会require_once($template_file)

这取决于您的偏好,但建议您使用get_footer(),以防将来发生变化