介绍

邮政格式 是一个 主题功能 引入 版本3.1。帖子格式是一块元信息,主题可以使用,以自定义其帖子的介绍。POST格式功能提供了标准化的格式列表,这些格式可用于支持该功能的所有主题。主题不需要支持列表中的每种格式。新格式不能由主题甚至插件引入。此列表的标准化既提供了许多主题之间的兼容性,又提供了外部博客工具以一致访问此功能的途径。

简而言之,具有支持帖子格式的主题,博客作者可以通过从无线电按钮列表中选择帖子格式来改变每个帖子的外观。

使用 助手 例如,过去,创建了一个称为Aside的类别,并分配了该类别的帖子,然后根据样式规则从 post_class() 或来自 in_category(’aside’)。和 邮政格式,新方法允许主题增加对邮政格式的支持(例如 add_theme_support(“ post-formats”,阵列(’batery’))),然后在保存帖子时可以在发布元框中选择帖子格式。一个功能调用 get_post_format($ post-> id) 可用于确定格式,并且 post_class() 还将创建“格式化”类,用于纯CSS样式。

支持格式

如果主题对其进行支持,则以下帖子格式可供用户选择。

请注意,尽管实际的帖子内容条目不会更改,但主题可以使用此用户选择根据所选格式以不同的方式显示帖子。例如,一个主题可以删除“状态”帖子标题的显示。如何显示事物完全取决于主题,但这里有一些一般准则。

  • 在旁边:通常没有标题的样式。类似于Facebook Note更新。
  • 画廊:图像画廊。帖子可能包含一个图库短代码,并具有图像附件。
  • 关联:指向另一个网站的链接。主题可能希望使用第一个<a href="">将帖子内容标记为该帖子的外部链接。另一种方法可以是,如果该帖子仅由URL组成,则将是URL和标题(post_title)将是锚定上的名称。
  • 图像:一个图像。首先<img>帖子中的标签可以视为图像。另外,如果该帖子仅由URL组成,那将是图像URL和帖子的标题(post_title)将是图像的标题属性。
  • 引用:引号。可能包含一个持有报价内容的块。另外,报价可能只是内容,源/作者是标题。
  • 地位:一个简短的状态更新,类似于Twitter状态更新。
  • 视频:单个视频或视频播放列表。首先<video>帖子内容中的标签或对象/嵌入可以视为视频。另外,如果该帖子仅由URL组成,那就是视频URL。如果在博客上启用了视频支持(例如通过插件),则可能包含视频作为帖子的附件。
  • 声音的:音频文件或播放列表。可用于播客。
  • 聊天:聊天笔录,像这样:
John: foo
Mary: bar
John: foo 2

注意:编写或编辑帖子时,标准用于指定未指定邮政格式。同样,如果指定了无效的格式,则将使用标准(无格式)。

功能参考

主要功能set_post_format()get_post_format()has_post_format()

其他功能get_post_format_link()get_post_format_string()

添加主题支持

主题需要使用 add_theme_support() 在里面functions.php文件以通过传递一系列格式来告诉WordPress哪些帖子格式支持:

add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );

请注意,您必须在此之前致电 在里面 钩被打电话!一个好钩子是 after_setup_theme 钩。

添加帖子类型支持

帖子类型需要使用 add_post_type_support() 在里面functions.php文件以告知WordPress要支持哪种帖子格式:

// add post-formats to post\_type 'page'
add_post_type_support( 'page', 'post-formats' );

下一个示例寄存器自定义帖子类型my_custom_post_type,并添加邮政格式。

// register custom post type 'my_custom_post_type'
add_action( 'init', 'create_my_post_type' );
function create_my_post_type() {
  register_post_type( 'my_custom_post_type',
    array(
      'labels' => array( 'name' => __( 'Products' ) ),
      'public' => true
    )
  );
}

//add post-formats to post_type 'my_custom_post_type'
add_post_type_support( 'my_custom_post_type', 'post-formats' );

或在功能中 register_post_type(),添加post-formats,在supports参数阵列。下一个示例等效于上方。

// register custom post type 'my_custom_post_type' with 'supports' parameter
add_action( 'init', 'create_my_post_type' );
function create_my_post_type() {
  register_post_type( 'my_custom_post_type',
    array(
      'labels' => array( 'name' => __( 'Products' ) ),
      'public' => true,
      'supports' => array('title', 'editor', 'post-formats')
    )
  );
}

使用格式

在主题中,利用 get_post_format() 检查格式的帖子,并相应地更改其演示文稿。请注意,具有默认格式的帖子将返回false的值。或利用 has_post_format()条件标签

if ( has_post_format( 'video' )) {
  echo 'this is the video format';
}

使用格式的另一种方法是通过样式规则。主题应使用 post_class() 围绕帖子的包装代码中的功能以添加动态样式类。邮政格式将使用“格式 – 富”名称以这种方式添加额外的类。

例如,通过将其放入主题的样式表中,可以将其隐藏在状态格式帖子中:

.format-status .post-title {
  display:none;
}

建议的样式

尽管您可以以任何合适的方式展示风格和设计格式,但每种格式都可以采用某种类型的“样式”,如现代用法所规定。请务必记住每种格式的预期用法,因为这将使它们轻松地被读者视觉视为特定类型。

例如,通常将不带标题或作者信息的情况下显示旁边,链接和状态格式。它们很简单,短而小。旁边可能包含一两个段落,而该链接可能只是一个句子,其中有指向其中一些URL的链接。链接和旁边都可能具有指向单个帖子页面的链接(使用 the_permalink())并因此允许评论,但是状态格式很可能不会具有这样的链接。

另一方面,图像帖子通常只包含一个单个图像,有或没有字幕/文本都可以随附。音频/视频帖子是相同的,但添加了音频/视频。这三个中的任何一个都可以使用插件或标准 嵌入 显示他们的内容。标题和作者身份也可能不会为他们展示,因为内容可能是不言自明的。

报价格式特别适合发布没有额外信息的人的简单报价。如果您仅将报价单独放入帖子内容中,并将引用的人的名字放入帖子的标题中,那么您可以样式的帖子以显示 内容() 本身,但重新设置为blockquote格式,并使用 标题() 将引用的人的名字显示为副词。

在许多情况下,尤其是聊天可能会趋向于单层类型的显示。有一些样式.format-chat,您可以使用单调的字体(也许是在灰色背景div或类似)中显示帖子的内容,从而将其视为聊天会话。

儿童主题格式

孩子主题 继承由父主题定义的帖子格式。打电话 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(“后形式”) 将把它们全部删除。

向后兼容

如果您的插件或主题需要与早期版本的WordPress兼容,则需要添加名称的术语post-format-$formatpost_format分类。例如,

wp_insert_term( 'post-format-aside', 'post_format' );

您还必须注册post_format分类学 register_taxonomy()

源文件

外部资源

ChangElog

By zhuon

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注