WordPress の投稿には、いくつかのステータスのうち 1 つを設定できます。特定の投稿のステータスによって、WordPress がその投稿をどのように処理するかが決まります。たとえば、誰でも閲覧できる公開済みの投稿には publish ステータスが割り当てられ、下書きには draft ステータスが割り当てられます。ステータスは wp_posts テーブルの post_status フィールドに保存されます。
WordPress には、使用できる 8 つの組み込みステータスが用意されています。WordPress 3.0 では、独自のカスタム投稿ステータスを追加し、さまざまな方法で使用できる機能が導入されました。
ワークフロー
WordPress には、ウェブサイトに送信されたコンテンツを公開前にレビューできるよう、一部のユーザー(権限グループと権限に基づく)に権限を与える組み込み機能があります。これは一般に “ワークフロー” と呼ばれます。WordPress のワークフロー機能では、投稿の現在のワークフロープロセスのどの段階にあるかを判断するために、投稿の post_status フィールドの値を使用します。
ほとんどのユーザーは、少なくとも次の 2 つのワークフロー状態にすでに慣れています。
内部的には、“公開” ボタンをクリックすると WordPress は投稿ステータスを publish に設定し、“下書きとして保存” ボタンをクリックすると投稿ステータスを 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 の使用を検討してください。
カスタムステータスとは、ユーザーが定義する投稿ステータスです。
WordPress にカスタムステータスを追加するには、register_post_status() 関数を使用します。この関数を使うと、投稿ステータスと、WordPress 内での動作を定義できます。
ここでは、“Unread” というカスタム投稿ステータスを追加する基本的な例を示します。
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 に基づいて投稿ステータスを取得します。