WordPress 中的文章可以具有多种状态之一。给定文章的状态决定了 WordPress 如何处理该文章。例如,所有人都可以查看的公开文章会被分配 publish 状态,而草稿会被分配 draft 状态。状态存储在 wp_posts 表的 post_status 字段中。
WordPress 提供了 8 种内置状态供你使用。WordPress 3.0 赋予了你添加自定义文章状态并以不同方式使用它的能力。
工作流程
WordPress 提供了内置功能,使某些用户(基于其角色和权限)能够在网站发布内容之前审核提交的内容。这通常被称为“工作流程”。WordPress 的工作流程功能依赖文章的 post_status 字段值,以了解文章当前处于工作流程的哪个步骤。
大多数用户至少已经熟悉两种工作流程状态:
在内部,当你点击“发布”按钮时,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' );
资源
相关内容
代码文档
- 函数: get_post_status() – 根据文章 ID 获取文章状态。