WordPress の管理画面の記事一覧にタグやカテゴリの情報もあると便利だよね!ということでその方法を調べてみました。

流れとしては

  1. 列を追加
  2. 列に入れる情報を出力

と2段階に分かれて対応します。

まず一つ目の列の追加は次のコードで行います。

function add_manage_posts_list_column($columns) {
  $columns['tag'] = "タグ";
  $columns['category'] = "カテゴリ";
  return $columns;
}
add_filter( 'manage_posts_columns', 'add_manage_posts_list_column' );

次にその列に表示する情報を取得して出力します。

function add_manage_posts_column_data($column_name, $post_id) {
  if ($column_name == 'tag') {
    $tags = get_the_terms($post_id, 'post_tag');
    if ($tags) {
      $count = 0;
      foreach ($tags as $tag) {
        if ($count > 0) echo ' ,';
        echo $tag->name;
        $count++;
      }
    }
  } else if ($column_name == 'category') {
    if (get_the_terms($post_id, 'category')) {
      $category = array_shift(get_the_terms($post_id, 'category'));
      echo $category->name;
    }
  }
}
add_action( 'manage_posts_custom_column', 'add_manage_posts_column_data', 10, 2 );

カスタム投稿タイプの場合は

    $tags = get_the_terms($post_id, 'post_tag');
      $category = array_shift(get_the_terms($post_id, 'category'));

post_tagcategory をカスタム投稿タイプに設定したタグ名とカテゴリ名に変えることで対応できます。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください