主题使用文章格式以特定格式和风格展示帖子。邮政格式功能提供了可用于支持该功能的所有主题的标准格式列表。主题可能不支持列表中的每种格式;在这种情况下,使用户知道这是很好的形式。
主题不能引入不在标准化列表中的格式,即使是通过插件。这种标准化确保主题之间的兼容性和外部工具以一致的方式使用该功能的方式。
简而言之,通过支持邮政格式的主题,博客可以通过选择邮政格式来更改邮局的外观。
使用Asides作为示例,过去已创建一个名为Asides的类别,并将帖子分配给该类别,然后根据post_class()或in_category('asides')中的样式规则显示不同的内容。
使用Post格式,新方法允许主题添加对Post格式的支持(例如,add_theme_support('post-formats',array('aside'))),然后可以在Publish meta框中选择Post格式保存帖子。可以使用get_post_format($ post-> ID)的函数调用来确定格式,并且post_class() 也将为pure-css样式创建“format-asides”类。
## 支持的格式
如果主题支持,则可以使用以下Post格式。
>[warning] 请注意,虽然实际的帖子内容不会更改,但主题可以根据所选格式显示不同的帖子。 显示职位的方式完全取决于主题,但以下是对不同Post格式的典型用法的一般指导。
- aside – 通常风格没有标题。 类似于Facebook笔记更新。
- gallery – 图像库。 帖子可能包含一个图库的短码,并将附有图像附件。
- link – 指向另一个网站的链接。 主题可能希望在帖子内容中使用第一个`<a href="">`标签作为该帖子的外部链接。 一个替代方法可能是,如果帖子只包含一个URL,那么这将是URL,标题(post_title)将是附加到锚点的名称。
- image – 单一图像。 帖子中的第一个`<img />`标签可以被认为是图像。 或者,如果帖子只包含一个URL,那将是图像URL,并且该帖子的标题(post_title)将是该图像的标题属性。
- quote – 引用。 可能会包含一个包含报价内容的blockquote。 或者,引用可能只是内容,源/作者是标题。
- status – 一个简短的状态更新,类似于Twitter状态更新。
- video – 一个视频。 第一个`<video />`标签或对象/嵌入到帖子内容可以被视为视频。 或者,如果帖子只包含一个URL,那将是视频URL。 如果在博客上启用视频支持(如通过插件),也可以将该视频作为帖子的附件。
- audio – 一个音频文件。 可用于播客。
- chat – 聊天记录如下:
```
John: foo
Mary: bar
John: foo 2
```
>[warning] 注意:写入或编辑帖子时,“标准”表示没有指定后期格式。 另外如果指定了无效的格式,默认情况下会应用“标准”(无格式)。
# 功能参考
## 主要功能
- set_post_format()
- get_post_format()
- has_post_format()
## 其他功能
- get_post_format_link()
- get_post_format_string()
## 添加主题支持
主题需要在functions.php文件中使用add_theme_support()来通过传递如下格式的数组来告诉WordPress支持的格式:
```
function themename_post_formats_setup() {
add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );
}
add_action( 'after_setup_theme', 'themename_post_formats_setup' );
```
使用after_setup_theme钩子,以便在主题加载后注册后期格式支持。
## 添加帖子类型支持
Post Types需要在functions.php文件中使用add_post_type_support()来告诉WordPress支持哪些格式:
```
function themename_custom_post_formats_setup() {
// add post-formats to post_type 'page'
add_post_type_support( 'page', 'post-formats' );
// add post-formats to post_type 'my_custom_post_type'
add_post_type_support( 'my_custom_post_type', 'post-formats' );
}
add_action( 'init', 'themename_custom_post_formats_setup' );
```
或者在函数register_post_type()中,添加'post-formats',在'supports'参数数组中:
```
$args = array(
...
'supports' => array('title', 'editor', 'author', 'post-formats')
);
register_post_type('book', $args);
```
add_post_type_support应该挂钩到init钩子,因为自定义帖子类型可能没有在after_setup_theme上注册。
## 使用格式
在主题中,使用get_post_format()检查帖子的格式,并相应地更改其演示文稿。 请注意,默认格式的帖子将返回值为FALSE。 或者,使用has_post_format()条件标签:
```
if ( has_post_format( 'video' )) {
echo 'this is the video format';
}
```
## 建议造型
格式的另一种方法是通过样式规则。 主题应该使用post_class()函数在包围该文章的包装器代码添加动态样式类。 Post格式会导致使用“format-foo”名称以这种方式添加额外的类。
例如,可以通过将其放在主题的样式表中来隐藏状态格式帖子的帖子:
```
.format-status .post-title {
display:none;
}
```
每种格式都适用于某种类型的“风格”,如现代用法所规定。在应用样式时,请牢记每种格式的预期用法。
例如,旁边,链接和状态格式是简单,简短和次要的。这些将通常显示没有标题或作者信息。旁边可能包含一段或两段,而链接将只是一个连接到其中的URL的句子。链接和旁边可能都有一个链接到单个帖子页面(使用the_permalink()),因此将允许评论,但状态格式很可能没有这样的链接。
另一方面,图像柱通常只包含单个图像,具有或不具有标题/文本以与之一起。音频/视频文章将是相同的,但添加了音频/视频。这三个中的任何一个可以使用插件或标准嵌入来显示其内容。标题和作者可能不会显示给他们,因为内容可能是不言自明的。
报价格式特别适合发布一个没有额外信息的人的简单报价。如果你把报价单放在帖子内容中,并把引用的人的名字放在帖子的标题中,那么你可以对帖子进行风格化,以便自己显示the_content(),然后重新设置为blockquote格式,并使用the_title()显示被引用的人的名称作为旁路。
在许多情况下,特别的聊天可能会趋向于等宽型显示。使用.format-chat上的一些样式,您可以使用等宽字体显示帖子的内容,也许在灰色背景div或类似内容中,从而将其视为聊天会话。
## 子主题格式
子主题继承由父主题定义的帖子格式。 在子主题中为post格式调用add_theme_support()必须比父主题的优先级更高,并覆盖现有的列表,而不是添加它。
```
add_action( 'after_setup_theme', 'childtheme_formats', 11 );
function childtheme_formats(){
add_theme_support( 'post-formats', array( 'aside', 'gallery', 'link' ) );
}
```
调用remove_theme_support('post-formats')将一起删除它。
- 简介
- 主题开发
- WordPress许可证
- 什么是主题
- 开发环境
- 主题开发示例
- 主题基础
- 模板文件
- 主样式表(style.css)
- 文章类型
- 规划主题文件
- 模板层级
- 模板标签
- 循环
- 主题函数
- 连接主题文件和目录
- 使用CSS和JavaScript
- 条件标签
- 类别,标签和自定义分类
- 模板文件
- 内容模板文件
- 页面模板文件
- 附件模板文件
- 自定义内容类型
- 部分和其他模板文件
- 评论模板
- 分类模板
- 404页面
- 主题功能
- 核心支持的功能
- 管理菜单
- 自定义Headers
- 自定义Logo
- 文章格式
- 置顶文章
- Sidebars
- Widgets
- 导航菜单
- 分页
- 媒体
- Audio
- Images
- Galleries
- Video
- 精选图片和缩略图
- 国际化
- 本地化
- 辅助功能
- 主题选项 – 自定义API
- 定制对象
- 改进用户体验的工具
- 定制JavaScript API
- JavaScript / Underscore.js渲染的自定义控件
- 高级用法
- 主题安全
- 数据消毒/逃避
- 数据验证
- 使用随机数
- 常见漏洞
- 高级主题
- 子主题
- UI最佳实践
- JavaScript最佳做法
- 主题单元测试
- 验证你的主题
- Plugin API Hooks
- 发布你的主题
- 所需的主题文件
- 测试
- 主题评论指南
- 写文档
- 提交你的主题到WordPress.org
- 参考文献
- 模板标签列表
- 条件标签列表
- 编码标准
- HTML编码标准
- CSS编码标准
- JavaScript编码标准
- PHP编码标准
- 插件开发
- 插件开发简介
- 什么是插件
- 插件基础
- 头部要求
- 包括软件许可证
- 启用 / 停用 Hooks
- 卸载方法
- 最佳做法
- 插件安全
- 检查用户功能
- 数据验证
- 保护输入
- 保护输出
- 随机数
- Hooks
- Actions
- Filters
- 自定义Hooks
- 高级主题
- 管理菜单
- 顶级菜单
- 子菜单
- 短代码
- 基本短码
- 封闭短码
- 带参数的短代码
- TinyMCE增强型短码
- 设置
- 设置API
- 使用设置API
- 选项API
- 自定义设置页面
- 元数据
- 管理帖子元数据
- 自定义元数据
- 渲染元数据
- 自定义文章类型
- 注册自定义文章类型
- 使用自定义文章类型
- 分类
- 使用自定义分类
- 在WP 4.2+中使用“split术语”
- 用户
- 创建和管理用户
- 使用用户元数据
- 角色和功能
- HTTP API
- JavaScript
- jQuery
- Ajax
- 服务器端PHP和入队
- Heartbeat API
- 概要
- 计划任务
- 了解WP-Cron计划
- 安排WP-Cron 事件
- 将WP-Cron挂接到系统任务计划程序中
- WP-Cron简单测试
- 国际化
- 本地化
- 如何国际化您的插件
- 国际化安全
- WordPress.org
- 详细插件指南
- 规划您的插件
- 如何使用Subversion
- 插件开发者常见问题
- 开发工具
- Debug Bar 和附加组件
- 辅助插件
- REST API手册
- 资源
- 文章
- 文章修订
- 文章类型
- 文章状态
- 类别
- 标签
- 页面
- 评论
- 分类
- 媒体
- 用户
- 设置
- 使用REST API
- 全局参数
- 分页
- 链接和嵌入
- 发现
- 认证
- 经常问的问题
- 骨干JavaScript客户端
- 客户端库
- 扩展REST API
- 添加自定义端点
- 自定义内容类型
- 修改回应
- 模式
- 词汇表
- 路由和端点
- 控制器类