妙高市や上越市に縁のある新潟県民がホームページ制作に関してつぶやくサイト

MENU [+]閉じる [×]
カスタムタクソノミーの値をWordPressの管理画面に表示する方法

WordPressでWebサイトの制作をしているとき、タクソノミー(taxonomy)というキーワードを扱うことがあります。

なかなか日常生活で聞き慣れない言葉ですよね、タクソノミー…(^^;)

広い意味ではWordPressに初期設定の段階から機能として含まれている投稿の「カテゴリー」や「タグ」も、タクソノミーの一部なのだとか。

タクソノミーに関しては後日また学習するとして、今回のテーマは「カスタムタクソノミーの値をWordPressの管理画面にも表示させる方法」についてご紹介します(*^▽^*)

この記事の目次

WordPressとカスタムタクソノミー

さすがに今回のテーマに触れる上で、冒頭の文章だけでは足りないと思いますので、少しだけ補足説明を(^^;)

WordPressの管理画面を見たことがある方ならば「投稿」という項目があるのはご存知ですよね(^^)

その投稿は、内容に応じて「カテゴリー」で分類したり、もしくは複数のカテゴリーを越えて同じキーワードを扱う場合には「タグ」を使ったりします。

でも、そもそもこの「投稿」に属さない領域のコンテンツを更新したい場合もあるわけです。

なおかつ「固定ページ」のように、一度公開したらしばらく更新の予定が無いだとか、コンテンツの分量が少なめだとかいうわけでもない場合です。

具体的に例えるならば、企業のホームページで「日記」を「投稿」で管理するけれど、日々の業務での「受注実績」を細かい項目も含めて随時ご紹介していきたいというような場合は、「制作実績」はあえて「投稿」で管理せずに、いくらかの設定を追加して「カスタム投稿タイプ」を新たに設けることがあります。

そして、「カスタム投稿タイプ」で管理する「制作実績」のコンテンツも、その分類や使用するキーワードなどに応じて、「投稿におけるカテゴリーやタグに相当する分類方法」が欲しくなることも多々あるわけです(^^)

そんなときに活躍するのが「カスタムタクソノミー」です(*^▽^*)!!

………でも!!

ただカスタムタクソノミーを定義して、1個1個の記事ごとに分類していくだけでは、WordPressのカスタム投稿の管理画面にその分類が表示されません…(T_T)

「カスタムタクソノミーの値がWordPressの管理画面に表示されたら、どれだけ便利だろう…」

それを実現するのが、今回のテーマです(^^)v

ページの先頭へ戻る

カスタム投稿タイプ&付随するカスタムタクソノミーを追加する(1組の場合)

まず「カスタム投稿タイプその1」という名前で、それに付随するカスタムタクソノミーとして、カテゴリーとタグに相当するものを1種類ずつ定義します。

使用中のWordPressの[functions.php]に、こちらを追加してください。

※事前にバックアップを取った上で、自己責任のもとで作業してください。

/* カスタム投稿タイプを追加(単数) */
add_action( 'init', 'create_post_type' );
function create_post_type() {
register_post_type( 'cpt-part01',array('labels' => array('name' => __( 'カスタム投稿タイプその1' ),'singular_name' => __( 'カスタム投稿タイプその1' )),'public' => true,'has_archive' => true,'menu_position' =>5,'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields' ,'comments' ),));
register_taxonomy('cpt-part01_cat','cpt-part01',array('hierarchical' => true,'update_count_callback' => '_update_post_term_count','label' => 'カスタム投稿タイプその1カテゴリー','singular_label' => 'カスタム投稿タイプその1カテゴリー','public' => true,'show_ui' => true));
register_taxonomy('cpt-part01_tag','cpt-part01',array('hierarchical' => false,'update_count_callback' => '_update_post_term_count','label' => 'カスタム投稿タイプその1タグ','singular_label' => 'カスタム投稿タイプその1タグ','public' => true,'show_ui' => true));
}

先ほども言ったとおり、コレだけではWordPressの管理画面に表示されないはず。

なので、管理画面に表示させるために、上記のコードの後に、こちらの記述を追加してください。

/* カスタム投稿タイプ管理画面(単数)にジャンル(カテゴリに相当)とキーワード(タグに相当)の列を追加 */
function add_cpt01_custom_column( $defaults ) {$defaults['cpt-part01_cat'] = 'ジャンル';$defaults['cpt-part01_tag'] = 'キーワード';return $defaults;}
add_filter('manage_cpt-part01_posts_columns', 'add_cpt01_custom_column');
function add_cpt01_custom_column_id($column_name, $id) {if( $column_name == 'cpt-part01_cat' ) {echo get_the_term_list($id, 'cpt-part01_cat', '', ', ');}if( $column_name == 'cpt-part01_tag' ) {echo get_the_term_list($id, 'cpt-part01_tag', '', ', ');}}
add_action('manage_posts_custom_column', 'add_cpt01_custom_column_id', 10, 2);

上記のコードでは、追加した「カスタム投稿タイプその1」に付随する、カテゴリーに相当するものに「ジャンル」という名前を、タグに相当するものに「キーワード」という名前をつけています。

「投稿と同じように、カテゴリーとタグっていう呼び方でいいよ」という場合は、シングルクォーテーション(’)の中の文字列を変更してください。

※しつこいですが事前に[functions.php]のバックアップを取った上で作業してくださいね(^^;)

ページの先頭へ戻る

カスタム投稿タイプ&付随するカスタムタクソノミーを追加する(複数組の場合)

さて、こちらでは「カスタム投稿タイプとカスタムタクソノミーの組み合わせ」を、複数表示する場合のコードをご紹介します。

※もちろんこちらも事前にバックアップを取った上で、自己責任のもとで作業してください。

/* カスタム投稿タイプを追加(3組) */
add_action( 'init', 'create_post_type' );
function create_post_type() {
register_post_type( 'cpt-part01',array('labels' => array('name' => __( 'カスタム投稿タイプその1' ),'singular_name' => __( 'カスタム投稿タイプその1' )),'public' => true,'has_archive' => true,'menu_position' =>5,'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields' ,'comments' ),));
register_taxonomy('cpt-part01_cat','cpt-part01',array('hierarchical' => true,'update_count_callback' => '_update_post_term_count','label' => 'カスタム投稿タイプその1カテゴリー','singular_label' => 'カスタム投稿タイプその1カテゴリー','public' => true,'show_ui' => true));
register_taxonomy('cpt-part01_tag','cpt-part01',array('hierarchical' => false,'update_count_callback' => '_update_post_term_count','label' => 'カスタム投稿タイプその1タグ','singular_label' => 'カスタム投稿タイプその1タグ','public' => true,'show_ui' => true));
register_post_type( 'cpt-part02',array('labels' => array('name' => __( 'カスタム投稿タイプその2' ),'singular_name' => __( 'カスタム投稿タイプその2' )),'public' => true,'has_archive' => true,'menu_position' =>5,'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields' ,'comments' ),));
register_taxonomy('cpt-part02_cat','cpt-part02',array('hierarchical' => true,'update_count_callback' => '_update_post_term_count','label' => 'カスタム投稿タイプその2カテゴリー','singular_label' => 'カスタム投稿タイプその2カテゴリー','public' => true,'show_ui' => true));
register_taxonomy('cpt-part02_tag','cpt-part02',array('hierarchical' => false,'update_count_callback' => '_update_post_term_count','label' => 'カスタム投稿タイプその2タグ','singular_label' => 'カスタム投稿タイプその2タグ','public' => true,'show_ui' => true));
register_post_type( 'cpt-part03',array('labels' => array('name' => __( 'カスタム投稿タイプその3' ),'singular_name' => __( 'カスタム投稿タイプその3' )),'public' => true,'has_archive' => true,'menu_position' =>5,'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'custom-fields' ,'comments' ),));
register_taxonomy('cpt-part03_cat','cpt-part03',array('hierarchical' => true,'update_count_callback' => '_update_post_term_count','label' => 'カスタム投稿タイプその3カテゴリー','singular_label' => 'カスタム投稿タイプその3カテゴリー','public' => true,'show_ui' => true));
register_taxonomy('cpt-part03_tag','cpt-part03',array('hierarchical' => false,'update_count_callback' => '_update_post_term_count','label' => 'カスタム投稿タイプその3タグ','singular_label' => 'カスタム投稿タイプその3タグ','public' => true,'show_ui' => true));
}

そして、これらのカスタム投稿タイプのWordPressの管理画面上でカスタムタクソノミーの値を表示させたい場合は、こちらの記述を追加してください。

※え?しつこい?でも言います!事前にバックアップを取った上で、自己責任のもとで作業してください。

/* カスタム投稿タイプ管理画面(複数)にジャンル(カテゴリに相当)とキーワード(タグに相当)の列を追加 */
function add_cpt01_custom_column( $defaults ) {$defaults['cpt-part01_cat'] = 'ジャンル';$defaults['cpt-part01_tag'] = 'キーワード';return $defaults;}
add_filter('manage_cpt-part01_posts_columns', 'add_cpt01_custom_column');
function add_cpt01_custom_column_id($column_name, $id) {if( $column_name == 'cpt-part01_cat' ) {echo get_the_term_list($id, 'cpt-part01_cat', '', ', ');}if( $column_name == 'cpt-part01_tag' ) {echo get_the_term_list($id, 'cpt-part01_tag', '', ', ');}}
add_action('manage_posts_custom_column', 'add_cpt01_custom_column_id', 10, 2);

function add_cpt02_custom_column( $defaults ) {$defaults['cpt-part02_cat'] = 'ジャンル';$defaults['cpt-part02_tag'] = 'キーワード';return $defaults;}
add_filter('manage_cpt-part02_posts_columns', 'add_cpt02_custom_column');
function add_cpt02_custom_column_id($column_name, $id) {if( $column_name == 'cpt-part02_cat' ) {echo get_the_term_list($id, 'cpt-part02_cat', '', ', ');}if( $column_name == 'cpt-part02_tag' ) {echo get_the_term_list($id, 'cpt-part02_tag', '', ', ');}}
add_action('manage_posts_custom_column', 'add_cpt02_custom_column_id', 10, 2);

function add_cpt03_custom_column( $defaults ) {$defaults['cpt-part03_cat'] = 'ジャンル';$defaults['cpt-part03_tag'] = 'キーワード';return $defaults;}
add_filter('manage_cpt-part03_posts_columns', 'add_cpt03_custom_column');
function add_cpt03_custom_column_id($column_name, $id) {if( $column_name == 'cpt-part03_cat' ) {echo get_the_term_list($id, 'cpt-part03_cat', '', ', ');}if( $column_name == 'cpt-part03_tag' ) {echo get_the_term_list($id, 'cpt-part03_tag', '', ', ');}}
add_action('manage_posts_custom_column', 'add_cpt03_custom_column_id', 10, 2);

カスタム投稿タイプを複数組追加する場合は、それぞれに「ジャンル」と「キーワード」に相当する文言を設定できます。

「カテゴリーとタグ」でももちろんOKですし、「区分と等級」でもいいでしょうし、「支店と担当者」でもいいかもしれません。

応用次第で、カスタム投稿タイプを自由に設定できます。

さて。

上記のような方法でカスタムタクソノミーの値をWordPressの管理画面に表示できたら、

「あ、この記事はコレに属するものだな」

というのが一目で分かるようになると思います。

カスタム投稿タイプとカスタムタクソノミーの組み合わせを使いこなして、効率的なサイト作りと充実したWeb活用を目指してください(^^)/~~

ページの先頭へ戻る

いいね!と思っていただけたらSNSでシェアしてください♪

感想などあればコメントください♪

コメントを残す

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

Copyright (C) 妙高Web屋 All Rights Reserved.

ページの先頭へ