投稿ステータス

WordPress の投稿はいくつかあるステータスの一つを持ちます。投稿のステータスは、その投稿を WordPress がどのように扱うかを決定します。例えば、誰でも見られる公の投稿は 公開済 ステータスを、草稿は 下書き ステータスを割り当てられます。ステータスは wp_posts テーブルの post_status フィールドへ格納されます。

WordPress は、すぐに使える 8 つの組み込みステータス を提供します。WordPress 3.0 からは自分の好きな カスタム投稿ステータス を追加して、別の方法で使うことができます。

ワークフロー

WordPress は、ウェブサイトへ投稿されたコンテンツを公開する前にユーザーが(ユーザーの種類と権限に基づいて)レビューするための標準機能を提供します。これは一般的に「ワークフロー」と呼ばれます。WordPress のワークフロー機能は、投稿の post_status フィールドの値によって、投稿がワークフローのどのステップにあるかを判別します。

ほとんどのユーザーは少なくとも 2 種類のワークフロー状態を知っているでしょう :

WordPress の内部では、「公開」ボタンをクリックすると投稿ステータスへ publish がセットされ、「下書きとして保存」ボタンをクリックすると draft がセットされます。また、edit_posts 権限を持つけれども publish_posts 権限を持たないユーザーが投稿を書き始めると、「公開」ボタンの代わりに「レビュー待ちとして送信」ボタンが表示されます。そのボタンを押すと、そのユーザーが作った投稿に pending ステータスが割り当てられます。

投稿ステータスは管理画面投稿の追加または編集サブパネルでセットできます。ただし、投稿に特定のステータスを割り当てるのは、相応の権限を持つユーザーのみが行えます。内部的には、どの投稿も同じ場所(wp_posts テーブル)に保存され、post_status というカラムで判別されます。

デフォルトのステータス

WordPress がデフォルトで使用する 8 つの投稿ステータスがあります。

公開済 (publish)

誰でも見ることができます。

予約済 (future)

未来の日付に公開を予定されています。

下書き (draft)

適切な ユーザーレベル を持つユーザーが見ることができる、未完成の投稿です。
訳注edit_others_posts 権限を持つユーザー(普通は 編集者 権限グループを割り当てられたユーザー)。

承認待ち (pending)

publish_posts 権限を持つユーザー(普通は 編集者 権限グループを割り当てられたユーザー)による公開を待っています。

非公開 (private)

管理者レベルの WordPress ユーザーだけが見ることができます。

ゴミ箱 (trash)

ゴミ箱の中にある投稿は trash ステータスを割り当てられます。

自動保存 (auto-draft)

編集中に WordPress が自動的に保存した リビジョン です。

継承 (inherit)

子の投稿(添付ファイル/en や リビジョン)に割り当てられ、実際のステータスは親投稿のステータスによって決まります。

カスタムステータス

注意: 下記の関数は、登録された投稿ステータスを管理画面に追加しません。その機能はまだ開発されていません。詳細は 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 に基づいて投稿ステータスを取得。

この記事は役に立ちましたか ? どうすればさらに改善できますか ?