您发布的代码正在循环浏览该帖子分配的所有类别。
foreach构造一个字符串,表示它要检查的每个可能的模板文件,并将它们全部分配给$template
.
这个locate_template()
函数将通过$templates
数组并返回实际存在的第一个数组。这就是将分配给$模板变量的内容。
如果事实证明这些文件都不存在,我相信locate_template()
将返回false。那里的代码只是检查locate_template()
在将模板分配给之前找到了任何模板$template
.
然后,整个函数将该模板的名称返回给过滤器,如果您返回实际字符串,过滤器将加载该模板,否则它将继续沿着模板层次结构向下移动到“single”之后的下一种类型的模板。
编辑:其他信息
get_the_terms
使用
wp_get_object_terms
默认情况下,它将按名称升序返回术语,因此如果一篇文章属于多个类别,您将始终按字母顺序加载第一个术语的模板。要更改此行为,请使用
wp_get_object_terms
直接将orderby参数指定为“count”、“slug”、“term\\u group”、“term\\u order”或“term\\u id”。