文章状态


WordPress 中的文章可以具有多种状态之一。给定文章的状态决定了 WordPress 如何处理该文章。例如,所有人都可以查看的公开文章会被分配 publish 状态,而草稿会被分配 draft 状态。状态存储在 wp_posts 表的 post_status 字段中。

WordPress 提供了 8 种内置状态供你使用。WordPress 3.0 赋予了你添加自定义文章状态并以不同方式使用它的能力。

工作流程

WordPress 提供了内置功能,使某些用户(基于其角色和权限)能够在网站发布内容之前审核提交的内容。这通常被称为“工作流程”。WordPress 的工作流程功能依赖文章的 post_status 字段值,以了解文章当前处于工作流程的哪个步骤。

大多数用户至少已经熟悉两种工作流程状态:

  • 已发布且所有人都可以查看的文章(包括已退出登录的用户)会被赋予 publish 状态
  • 尚未发布的草稿会被分配 draft 状态

在内部,当你点击“发布”按钮时,WordPress 会将文章状态设置为 publish;当你点击“保存草稿”按钮时,WordPress 会将文章状态设置为 draft。同样,如果你的网站有用户被授予 edit_posts 权限,但没有 publish_posts 权限,那么当这些用户开始撰写新文章时,WordPress 会显示“提交审核”按钮,而不是“发布”按钮。同样,当这些用户按下该按钮时,WordPress 会将该用户创建的文章分配为 pending 状态

任何拥有将文章分配到给定状态所需权限的用户,都可以在管理屏幕添加新文章屏幕中设置文章状态。在内部,所有这些文章都存储在同一位置(wp_posts 表),并通过一个名为 post_status 的列进行区分。

默认状态

WordPress 默认使用 8 种主要文章状态。

发布

所有人都可以查看。(publish)

未来

计划在未来某个日期发布。(future)

草稿

任何拥有适当用户角色的人都可以查看的不完整文章。(draft)

待审核

等待拥有 publish_posts 权限的用户(通常是被分配 编辑角色的用户)发布。(pending)

私密

仅 WordPress 管理员级别的用户可以查看。(private)

回收站

回收站中的文章会被分配 trash 状态。(trash)

自动草稿

你编辑时 WordPress 自动保存的修订版本。(auto-draft)

继承

与子文章(例如附件修订版本)一起使用,以从父文章确定实际状态。(inherit)

自定义状态

注意:

此函数不会将已注册的文章状态添加到管理屏幕中。此功能正在等待未来开发。请参阅 Trac 工单 #12706

考虑使用操作钩子 post_submitbox_misc_actions 来添加此参数。

自定义状态是你定义的文章状态。

通过 register_post_status() 函数,可以向 WordPress 添加自定义状态。此函数允许你定义文章状态及其在 WordPress 中的运行方式。

下面是一个添加名为“未读”的自定义文章状态的基本示例:

function custom_post_status(){
	register_post_status( 'unread', array(
		'label'                     => _x( 'Unread', 'post' ),
		'public'                    => true,
		'exclude_from_search'       => false,
		'show_in_admin_all_list'    => true,
		'show_in_admin_status_list' => true,
		'label_count'               => _n_noop( 'Unread (%s)', 'Unread (%s)' ),
	) );
}
add_action( 'init', 'custom_post_status' );

资源

相关内容

代码文档