WordPress

【WordPress】管理画面のカスタム投稿一覧にカテゴリー(ターム)を表示する方法

2022年10月11日

※ 当サイトではアフィリエイト広告を利用しています

カスタム投稿一覧ってカテゴリー(ターム)は表示されないの?

通常の投稿であれば管理画面の投稿一覧でカテゴリーが表示されます。

通常投稿一覧:カテゴリーが表示

通常投稿一覧:カテゴリーが表示

これは通常投稿の場合、表示オプションに『カテゴリー』があるからです。

通常投稿一覧:表示オプション

通常投稿一覧:表示オプション

もちろんチェックを外せば非表示にも出来ます。

しかし、カスタム投稿一覧の表示オプションには『カテゴリー』はありません。

カスタム投稿一覧:表示オプション

カスタム投稿一覧:表示オプション

カテゴリーが無いと言うより『日付』しかありません。

この日付のチェックも外せば当然このようになります。

通常投稿一覧:カテゴリー(ターム)が非表示

通常投稿一覧:カテゴリー(ターム)が非表示

これだと表示されている投稿のカテゴリーは編集画面を開かないと分からず不便ですね。

そこで今回はカスタム投稿でカテゴリー(ターム)を表示させる方法をご紹介します。

じゅんぺいブログは、Web制作コーディングWordPress制作)の技術記事を中心に、約500記事公開しています。ぜひ他の記事も参考にしてみてください!
完全無料のプログラミングスクール『ZeroPlus Gate』
30日間でWeb制作を学べる無料のプログラミングスクールがこちら
いきなり数十万するプログラミングスクールは厳しい・・・という人のお試しに最適です。
現在は無料ですがいつ有料になるか分からないので、気になる方はお早めに👇
(有料になっていたらすいません🙇‍♂️)

\ 完全無料 /

ZeroPlus Gate公式サイト

毎日先着制!

管理画面のカスタム投稿一覧にカテゴリー(ターム)を表示する方法

今回は以下のような設定で解説します。

  • プラグイン『Custom Post Type UI』使用
  • カスタム投稿タイプ『ニュース』
  • カスタム投稿タイプスラッグ『news』
  • カスタムタクソノミー『地域』
  • タクソノミースラッグ『area』
  • ターム『東京・神奈川・埼玉・千葉』

そして『管理画面のカスタム投稿一覧にカテゴリー(ターム)を表示する方法』ですが、以下のコードを『functions.php』に追記すればOKです。

// 管理画面のカスタム投稿一覧にカテゴリー(ターム)を表示
function add_custom_column( $defaults ) {
  $defaults['area'] = '地域'; // 『area』はタクソノミースラッグ(複数設定可)
  return $defaults;
}
add_filter('manage_news_posts_columns', 'add_custom_column'); // ここの『news』はカスタム投稿タイプスラッグ
function add_custom_column_id($column_name, $id) {
  $terms = get_the_terms($id, $column_name);
  if ( $terms && ! is_wp_error( $terms ) ){
    $news_links = array(); // ここの『news』は変えなくてもOKだが、カスタム投稿タイプスラッグがおすすめ
    foreach ( $terms as $term ) {
      $news_links[] = $term->name;
    }
    echo join( ", ", $news_links );
  }
}
add_action('manage_news_posts_custom_column', 'add_custom_column_id', 10, 2); // ここの『news』はカスタム投稿タイプスラッグ

コメントアウトで書いてありますが、ご自身で書き換えるのは『タクソノミースラッグ』と『カスタム投稿タイプスラッグ』になります。

そしてカスタム投稿一覧を見てみます。

カスタム投稿一覧:表示オプション(ターム表示)

カスタム投稿一覧:表示オプション(ターム表示)

今度は表示オプションに追記した『地域』が表示されているので、チェックを入れれば一覧に表示されるようになりました。

また、タクソノミーが複数ある場合は以下のように3行目を増やせばOKです。

// 管理画面のカスタム投稿一覧にカテゴリー(ターム)を表示
function add_custom_column( $defaults ) {
  $defaults['area'] = '地域'; // 『area』はタクソノミースラッグ
  $defaults['type'] = '職種'; // 『type』はタクソノミースラッグ
  return $defaults;
}

以上になります。

この記事が役に立ったと思ったら、シェアボタンからX(旧Twitter)などにシェアすると、いいねされてフォロワーが増えたりすることがあるよ!
  • この記事を書いた人

じゅんぺい

37歳からWeb制作とブログ開始。Web制作歴5年目でコーディングとWordPressオリジナルテーマ制作が中心。これまで120件以上を納品。当ブログ月間最高15万PVで、370記事以上はWeb制作の技術記事。コンテンツ販売→累計売上1200万円&1500部超え。X(旧Twitter)フォロワー7200人以上。2024年3月からブログの経験を活かしてライターとしても活動を開始。

-WordPress
-