首页 > 主题开发 > 模板层次 > WordPress模板层次14:文章形式
2018
03-01

WordPress模板层次14:文章形式

WordPress支持的文章形式

WordPress文章形式(官方介绍)得知:

文章形式是文章的一种属性,可以被主题用来决定文章的显示方式。其设计目的是要提供一个特殊的方法来根据文章的特点选用显示“格式”。该方法用于替代以前需要使用分类来达到同样目的的做法,而且更重要的是,该方法在支持的主题间是通用的。

简单地说,如果一位博客作者正在使用一个支持“文章形式”的主题,那么作者就可以从一个单选列表中选择文章的形式,以此决定文章的显示样式。

WordPress中的文章形式有助于描述文章是什么,或者使用什么类型的内容。

支持的形式

目前支持以下文章格式:

  • 日志(aside) – 典型样式就是没有标题。类似于 Facebook 或人人网中更新的一条日志。
  • 相册(gallery) – 图像陈列厅。文章中通常会有“gallery”代码和相应的图像附件。
  • 链接(link) – 链接到其它网站的链接。主题可能会使用文章中的第一个 <a href=””> 标签作为文章的外部链接。有可能有的文章至包含一个 URL,那么这个 URL 将会被使用;同时,文章标题(post_title)将会是附加到它的锚的名称。
  • 图像(image) – 单张图像。文章中的首个 <img /> 标记将会被认为是该图片。另外,如果文章只包含一个 URL 链接,则被认为是该图片的 URL 地址,而文章标题(post_title)将会作为图片的标题属性。
  • 引语(quote) – 引用他人的一段话。通常使用 blockquote 来包裹引用内容。或者,可能直接将引语写入文章,并将其出处写在标题栏。
  • 状态(status) – 简短更新,通常最多 140 个字符。类似于微博 Twitter 状态消息。
  • 视频(video) – 单一视频。文章中第一个 <video /> 或 object 或 embed 将被作为视频处理。或者,文章可以仅包含视频的 URL,甚至一些主题和插件可以支持自动嵌入您的文章附件中的视频。
  • 音频(audio) – 一个音频文件。可以用于播客(podcasting)等。
  • 聊天(chat) – 聊天记录,类似于:

文章形式的工作原理

现在我们来看使用这些形式的常见做法,以便大家可以看到它们的工作原理。

为了讲解的方便,我们将进入 Twenty_Fifteen 主题:

文章形式 WordPress xuhss.com01 - WordPress模板层次14:文章形式

来看一下 single.php 文章模板:

<?php
/**
 * The template for displaying all single posts and attachments
 *
 * @package WordPress
 * @subpackage Twenty_Fifteen/***这是Twenty_Fifteen主题的single.php模板***/
 * @since Twenty Fifteen 1.0
 */

get_header(); ?>

	<div id="primary" class="content-area">
		<main id="main" class="site-main" role="main">

		<?php
		// Start the loop.
		while ( have_posts() ) : the_post();

			/*
			 * Include the post format-specific template for the content. If you want to
			 * use this in a child theme, then include a file called called content-___.php
			 * (where ___ is the post format) and that will be used instead.
			 */
			get_template_part( 'content', get_post_format() );/***get_post_format()会返回文章格式信息,从而调用不同的文件来实现文章模板***/

注意: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 :

文章形式 WordPress xuhss.com02 - WordPress模板层次14:文章形式

那么,如果文章的形式是链接(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网站的后台就是:

文章形式 WordPress xuhss.com03 - WordPress模板层次14:文章形式

所以,如果你在functions.php中删除或添加格式,那么这些修改将在编写文章时,显示出来。

总的来说,关于文章形式的选择,它的原理不同于模板层次结构,它是一个命名约定,通过条件语句,来判断使用哪个模板进行显示。

最后编辑:
作者:MrBang
WordPress迷

留下一个回复