简单的问题。在Wordpress模板中,有没有理由我不能使用include()
并使用get_footer()
?
让我们说我想在我的模板目录中有一个子文件夹,其中包含我的所有组件。这似乎工作正常,但也许我错过了一些东西。
答案 0 :(得分:3)
您根本不应在Wordpress主题中使用include()
。
原因是Wordpress的架构非常易于插拔 - 在整个核心,插件和主题中,大多数组件都可以通过actions和filters与其他组件进行交互。
虽然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()
,以防将来发生变化