在我看来,三到四次get_template_part()
是完全可以接受的,甚至在一些更大、更复杂的主题的规范范围内。
我不知道有多少是太多了,但我认为这必须是一个相当大的数字才能注意到性能上的成功。
更深入的观察
get_template_part()
呼叫
locate_template()
.
locate_template()
使用foreach()
要运行的循环file_exists()
针对主题目录。
文件性能\\u exists()
根据
this post about the performance of file_exists()
, PHP自动缓存函数的结果以提高性能。总的来说,这被认为是相当快的。
foreach()的性能
This post about the performance of foreach()
vs for()
得出的结论是,一般来说,两者之间没有什么明显的区别。然而,它并没有直接解决
foreach()
就其本身而言。为此,这篇文章
how foreach()
really works 深入了解该功能。它声明如下。
1.foreach()
可能会很慢,因为它必须复制数组,但在大多数情况下通常不会。
2.foreach()
其行为通常是透明的。
3.foreach()
如果在循环中修改数组,则可能会出现异常行为。
总之,调用get_template_part()
应该比较快。内的循环locate_template()
必须使用和foreach()
似乎和其他任何工具一样,都是完成这项工作的好工具。file_exists()
然后将缓存其结果。我们对性能的唯一直接控制get_template_part()
是模板目录中的文件数。
除非您有数百个模板文件要查看,或者正在对get_template_part()
站点性能的变化应该可以忽略不计。