WordPressにオリジナルのステータスを追加する

harada 82views 更新:2016年4月8日

WordPressではデフォルトで、公開、レビュー待ち、下書きのステータスを持っています。
こちらにオリジナルのステータスを追加する方法の覚書です。

functions.phpに以下を追加します。
こちらの例では「保留」ステータスを追加しています。

//新ステータス追加
add_action( 'init', 'jc_custom_post_status' );
function jc_custom_post_status(){
  register_post_status( 'hold', array(
    'label'                     => _x( '保留', 'post' ),
    'public'                    => true,
    'show_in_admin_all_list'    => false,
    'show_in_admin_status_list' => true,
    'label_count'               => _n_noop( '保留 <span class="count">(%s)</span>', '保留 <span class="count">(%s)</span>' )
  ) );
}

add_action('admin_footer-post-new.php', 'custom_admin_footer_post');
add_action('admin_footer-post.php', 'custom_admin_footer_post');
function custom_admin_footer_post()
{
if ($post_type == 'post') {
global $post;
$complete = '';
  $label = '';
    if($post->post_status == 'hold'){
      $complete = ' selected="selected"';
      $label = '保留';
    }
  ?>
 <script>
    jQuery(function ($) {
      $("select#post_status").append('<option value="hold"<?php echo $complete; ?>>保留</option>');
      $(".misc-pub-section label").append("<?php echo $label; ?>");
    });
  </script>
<?php 
}
}

カスタム投稿や固定ページで利用するには、$post_type == 'post'の部分を適宜変更してください。

参考:投稿ステータスにオリジナルのステータスを追加する
Create Custom Post Status in WordPress using register_post_status()

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません