注意:get_template_part(’content’,get_post_format())。
get_post_format()会返回文章格式信息,从而调用不同的文件来实现文章模板。
比如说,如果你为一篇文章选择的形式是:状态(status),那么get_post_format()这个函数返回的值就是’status’。所以,get_template_part()就会去查找名为content-dtatus.php的文件。
所以,来到主题目录中,在这里,我们有 content-link.php/content-none.php/content-page.php/content-search.php ,所以,如果没有找到 status ,就默认使用 content-none.php :
那么,如果文章的形式是链接(link),那么这篇文章将调用 content-link.php 模板。
所以,它的原理和模板层次结构的原理不同,实际上它是根据 get_post_format() 返回的文章格式信息,然后动态地选择正确的模板。
你可以查看任何默认的 WordPress 主题,这种做法也比较通用,重要的是你了解文章形式的工作原理。
如何指定主题支持的文章形式
还需要注意的是:如何指定文章形式?
来到 Twenty_Fifteen 主题下的 functions.php:
/*
* Enable support for Post Formats.
*
* See: https://codex.wordpress.org/Post_Formats
*/
add_theme_support( 'post-formats', array(
'aside', 'image', 'video', 'quote', 'link', 'gallery', 'status', 'audio', 'chat'
) );/***指定你想支持的文章形式***/
如果你打算构建一个自定义的主题,必须具体指定你想支持的文章格式。并指定要使用哪种类型的文章格式。
在 Twenty_Fifteen 主题中,支持几乎所有的文章形式。
这些文章形式反映到WordPress网站的后台就是:
所以,如果你在functions.php中删除或添加格式,那么这些修改将在编写文章时,显示出来。
总的来说,关于文章形式的选择,它的原理不同于模板层次结构,它是一个命名约定,通过条件语句,来判断使用哪个模板进行显示。