WordPressの投稿ステータスは「公開済み」や「下書き」が中心ですが、記事が増えると詳細な状態を把握しにくくなります。

そこで便利なのが独自の投稿ステータスです。「画像準備中」「リライト対象」などと設定すれば、下書き中や公開済みの記事も整理しやすく、チーム運営もスムーズになります。

本記事では、WordPressに独自の投稿ステータスを追加する方法をご紹介します。

WordPressテーマ「GLUE」
WordPressテーマ「GLUE」
無料で高機能なWordPressテーマが手に入る。

独自の投稿ステータスとは?

WordPressには「下書き」「公開」「非公開」などの基本的なステータスが用意されています。

ただ、実際は「下書き」とひとくくりにするには幅が広すぎることがあります。

たとえば次のようなパターンです。

  • ほぼ完成
  • アイデアをメモしただけ
  • 画像挿入待ち

このような段階を区別したいときに役立つのが「独自の投稿ステータス」です。

コピペでできるカスタマイズで任意のステータスを追加できるので、記事をより細かく分類・管理できるようになります。

どんなときに使うの?

実際の利用シーンをいくつか挙げてみます。

  • 記事が「書きかけ」なのか「確認待ち」なのかを明確にしたいとき
  • 複数人でサイトを運営していて、進捗を共有したいとき
  • 公開済み記事を「リライト対象」として管理したいとき

標準の「下書き」や「公開」だけでは区別しづらいケースでも、独自ステータスを使えば整理しやすく、チーム運用でも一目で進捗が把握できます。

独自の投稿ステータスを利用する方法

以下でご紹介しているコードをコピペして、記事編集画面で独自ステータスを選択すればすぐ使えます。

本記事のコードは、クラシックエディタ向けです。Gutenberg(ブロックエディタ)では投稿画面に反映されません。

functions.phpにコードを追加する

独自の投稿ステータスは、テーマファイルのfunctions.phpにコードを追加することで作成できます。以下の例では「画像準備中」という下書きステータスを追加します。

テーマファイルに直接追加するより、プラグイン経由がおすすめです。

// 独自投稿ステータス「画像準備中」を追加
function my_custom_post_status() {
    register_post_status( 'image_pending', array(
        'label'                     => '画像準備中',
        'public'                    => false,
        'exclude_from_search'       => true,
        'show_in_admin_all_list'    => true,
        'show_in_admin_status_list' => true,
        'label_count'               => _n_noop(
            '画像準備中 <span class="count">(%s)</span>',
            '画像準備中 <span class="count">(%s)</span>'
        ),
    ));
}
add_action( 'init', 'my_custom_post_status' );

// 投稿画面・クイック編集のステータスに追加
function add_image_pending_to_dropdown() {
    global $post;
    ?>
    <script>
    jQuery(function($){
        // 公開メタボックス
        $('#post_status').append('<option value="image_pending">画像準備中</option>');
        // クイック編集
        $('select[name="_status"]').append('<option value="image_pending">画像準備中</option>');
        // 投稿画面の表示を更新
        if('<?php echo $post->post_status ?? ''; ?>' === 'image_pending'){
            $('#post-status-display').text('画像準備中');
        }
    });
    </script>
    <?php
}
add_action('post_submitbox_misc_actions', 'add_image_pending_to_dropdown');
add_action('admin_footer-edit.php', 'add_image_pending_to_dropdown');

// 投稿一覧のフィルタに追加
function add_image_pending_to_post_list($views) {
    $num = wp_count_posts()->image_pending;
    $views['image_pending'] = '<a href="edit.php?post_status=image_pending&post_type=post">画像準備中 <span class="count">(' . $num . ')</span></a>';
    return $views;
}
add_filter('views_edit-post', 'add_image_pending_to_post_list');

// 投稿タイトル横にステータス表示
function show_image_pending_post_state($states, $post = null) {
    if($post && $post->post_status === 'image_pending') $states['image_pending'] = '画像準備中';
    return $states;
}
add_filter('display_post_states', 'show_image_pending_post_state', 10, 2);

このコードを追加すると、投稿画面や投稿一覧で「画像準備中」という新しいステータスが選択できるようになります。

投稿画面で独自ステータスを選択する

上記コードを追加したら、投稿記事編集画面で「画像準備中」というステータスを選択します。

「画像準備中」ステータスを選択する画面

一覧画面では、次のように表示されるので、画像準備中の記事だけでソートすることも可能です。

「画像準備中」ステータスが表示されている投稿一覧画面

記事本文は完成しているけど、画像が揃っていない下書きであることが一目でわかります。

公開済み記事に独自ステータスを追加する

たとえば、公開済みの記事に「リライト対象」などという独自ステータスを追加したいケースもあるかもしれません。

以下のコードを追加すれば、先ほどの「画像準備中」ステータスに加えて、「リライト対象」というステータスも追加できます。

サイト上では記事は公開されたまま、管理画面でのみ「リライト対象」というステータスで管理できるようになります。
// 独自ステータス追加
function my_custom_post_statuses() {
    register_post_status( 'image_pending', array(
        'label'                     => '画像準備中',
        'public'                    => false,
        'exclude_from_search'       => true,
        'show_in_admin_all_list'    => true,
        'show_in_admin_status_list' => true,
        'label_count'               => _n_noop('画像準備中 <span class="count">(%s)</span>','画像準備中 <span class="count">(%s)</span>'),
    ));
    register_post_status( 'rewrite_target', array(
        'label'                     => 'リライト対象',
        'public'                    => true,
        'exclude_from_search'       => false,
        'show_in_admin_all_list'    => true,
        'show_in_admin_status_list' => true,
        'label_count'               => _n_noop('リライト対象 <span class="count">(%s)</span>','リライト対象 <span class="count">(%s)</span>'),
    ));
}
add_action( 'init', 'my_custom_post_statuses' );

// 投稿画面・クイック編集に追加
function add_custom_statuses_to_dropdown() {
    global $post;
    ?>
    <script>
    jQuery(function($){
        $('#post_status').append('<option value="image_pending">画像準備中</option>');
        $('#post_status').append('<option value="rewrite_target">リライト対象</option>');
        $('select[name="_status"]').append('<option value="image_pending">画像準備中</option>');
        $('select[name="_status"]').append('<option value="rewrite_target">リライト対象</option>');
        if('<?php echo $post->post_status ?? ''; ?>' === 'image_pending') $('#post-status-display').text('画像準備中');
        if('<?php echo $post->post_status ?? ''; ?>' === 'rewrite_target') $('#post-status-display').text('リライト対象');
    });
    </script>
    <?php
}
add_action('post_submitbox_misc_actions', 'add_custom_statuses_to_dropdown');
add_action('admin_footer-edit.php', 'add_custom_statuses_to_dropdown');

// 投稿一覧フィルタに追加
function add_custom_statuses_to_post_list($views) {
    $views['image_pending'] = '<a href="edit.php?post_status=image_pending&post_type=post">画像準備中 <span class="count">(' . wp_count_posts()->image_pending . ')</span></a>';
    $views['rewrite_target'] = '<a href="edit.php?post_status=rewrite_target&post_type=post">リライト対象 <span class="count">(' . wp_count_posts()->rewrite_target . ')</span></a>';
    return $views;
}
add_filter('views_edit-post', 'add_custom_statuses_to_post_list');

// 投稿タイトル横に表示
function show_custom_post_states($states, $post = null) {
    if(!$post) return $states;
    if($post->post_status === 'image_pending') $states['image_pending'] = '画像準備中';
    if($post->post_status === 'rewrite_target') $states['rewrite_target'] = 'リライト対象';
    return $states;
}
add_filter('display_post_states', 'show_custom_post_states', 10, 2);

管理画面には、以下のように表示されます。

「画像準備中」「リライト対象」が追加された投稿一覧

記事一覧画面からでも、記事の詳しい状態を把握できますね。

まとめ

WordPressに独自の投稿ステータスを追加する方法をご紹介しました。

投稿ステータスに「詳細な状態」を設定することで、記事管理をより便利にできます。

  • プラグイン「Code Snippets」にコピペするだけで追加可能
  • 「画像準備中」「リライト対象」など、用途に応じたステータスを作成できる
  • 大量の記事やチーム運営でも進捗を整理しやすい

初心者の方でも安心して導入できるカスタマイズですので、ぜひ参考にしてみてください。

投稿記事の管理に便利なプラグイン

管理画面にメモを残せるプラグインや、記事公開前のチェックリスト作成に便利なプラグインもあります。

魅力的なブログがつくれる
WordPressテーマ集
WordPressテーマ「PANDORA」
レイアウト自由自在なブログ・メディアを構築。
WordPressテーマ「NULL」
技術や知見をシェアする開発者ブログを構築。
WordPressテーマ「Muum」
デザイン・SEOともに最高峰のブログに。
WordPressテーマ「Cherie」
華やかなブログで集客できるテンプレート。