Languages: English • Formats 日本語 Português do Brasil • Русский • 中文(简体) • 中文(繁體) • (Add your language)
在 3.1 版本中引入的文章形式,是文章的一种属性,可以被主题用来决定文章的显示方式。其设计目的是要提供一个特殊的方法来根据文章的特点选用显示“格式”。该方法用于替代以前需要使用分类来达到同样目的的做法,而且更重要的是,该方法在支持的主题间是通用的。
简单地说,如果一位博客作者正在使用一个支持“文章形式”的主题,那么作者就可以从一个单选列表中选择文章的形式,以此决定文章的显示样式。
以微博式(aside)为例,以前曾经创建了一个称作“Asides”的分类,指定为该分类的文章在显示的时候与别的文章不同,而是基于post_class() 或者 in_category('asides')所设定的样式规则。有了文章形式,就为主题设定文章格式提供了一种的新方法(例如,add_theme_support('post-formats', array('aside'))),然后就可以在保存文章的时候在发布信息框里选择对应的文章格式。通过调用功能函数get_post_format( $post->ID )就能确定文章所属格式,而post_class()将会创建“format-asides”类,以用于纯 CSS 样式编辑。
目前支持以下文章格式:
张三: foo 李四: bar 张三: foo 2
注意:当编辑文章时,若没有指定文章样式,则默认使用“标准”。同样,若指定了一个无效的文章形式,那么也将默认使用标准样式。
主题和插件可以使用函数 set_post_format() 来设置形式,使用 get_post_format() 来查询形式,使用 has_post_format() 来检查是否已经设置了某个形式。
主题必须使用 add_theme_support() 函数,通过传递一个数组来告诉 WordPress 使用何种文章形式,例如:
add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );
然后在主题中使用 get_post_format() 函数以检查文章格式,并据此来修改格式。要注意的是使用默认格式的文章时,该函数返回值为FALSE。或者使用 条件判断标签函数 has_post_format():
if ( has_post_format( 'video' )) { echo 'this is the video format'; }
如果要让你的插件或主题兼容早期版本的 WordPress,你需要按照 post-format-$format 的格式添加 "post_format" 分类。例如
wp_insert_term('post-format-aside', 'post_format');
还需要用函数 register_taxonomy() 来注册 post_format 文章形式分类。