無料WordPressテーマ Principle

WordPressテーマ Principleの機能や使い方、WordPress用レンタルサーバーに関する情報など

WordPress初心者

カスタム投稿タイプ、カスタムタクソノミーについて整理してみた

WordPress専用レンタルサーバー人気No.1 → ConoHa WING

 カスタムタクソノミーってややこしいですよね。

 何がややこしいって言葉がややこしいですよね。

 このちょっと難解なカスタムタクソノミー関連の言葉の概念というか定義みたいなのを整理したいと思います。普通のブログではあまり必要ないですが、ブログ以外のwebサイトを作る時、非常に役立ちますので理解していて損はないです。

 コピペでカスタム投稿タイプを作れるコードも最後に載せてます。ぜひ意味を理解した上で自分なりにカスタムしちゃって下さい。

投稿タイプとタクソノミー

 普通にWordPress使ってる人なら、投稿固定ページカテゴリータグなどの言葉は聞き慣れてますよね。以下の表の意味するところは理解できると思います。

投稿タイプ タクソノミー ターム
投稿 カテゴリー 仕事中に思ったこと
遊んでいて思ったこと
タグ マラソン
笑顔
固定ページ × ×

 投稿記事のカテゴリーは「仕事中に思ったこと」と「遊んでいて思ったこと」に分類されています。日記みたいな気づきの防備録みたいな感じなんですかね?センスなさそうですね。
 その投稿記事(何記事あるのか知りませんが)にタグとして使われているワードが「マラソン」「笑顔」の二つなんですね(あまり深く考えないでw)。

 注目は、表の一番上の投稿タイプタクソノミータームという枠組みです。

 投稿タイプには「投稿」と「固定ページ」があります。

 タクソノミーには「カテゴリー」と「タグ」があります。
 タクソノミーという言葉は分類方法あるいは分類タイプと訳すと分かりやすいです。カテゴリーもタグも言うなれば投稿記事を分類する方法と言えますよね。

 タームというのは、「仕事中に思ったこと」以下、具体的な分類項目のことです。

 ちなみに、固定ページはそもそも分類という仕組みがないので、タクソノミーもタームも存在しません。

 この構造が理解できれば、カスタム投稿タイプカスタムタクソノミーという言葉の意味も理解出来ます。

カスタムとは?

 例えば、普通の投稿記事とは別枠で「おすすめ商品」を紹介するコーナーを、同じwebサイト内に作るとします。

 そして、おすすめ商品として書く記事は「カテゴリー」と「メーカー」という括りで分類するとします。カテゴリーには「パソコン」や「デジカメ」なんかがあるとしましょう。

 表にするとこういうことです。

投稿タイプ タクソノミー ターム
元々ある 投稿 カテゴリー 仕事中に思ったこと
遊んでて思ったこと
タグ マラソン
笑顔
固定ページ × ×
自分で作る おすすめ商品 カテゴリー パソコン
デジカメ
メーカー ソニー
パナソニック

 つまり、元々ある「投稿」、「固定ページ」以外に「おすすめ商品」という投稿タイプを新たに作って、そのおすすめ商品記事の分類方法として「カテゴリー」と「メーカー」というタクソノミーを新たに作ったわけです。

 このように自分で追加した投稿タイプをカスタム投稿タイプと言います。同様に自分で追加したタクソノミーをカスタムタクソノミーと言います。それだけです。

 落ち着いて考えたらそんなに難しくはないのですが、「カスタムタクソノミー」という見慣れない聞き慣れない言葉がこれらの概念を無駄に難解にしてると思います。罪深きカスタムタクソノミー・・。

 ややこしかったら、「タクソノミー」を全部「分類タイプ」に脳内で変換して読むようにしたらいいと思います。

カスタム投稿タイプをコピペで作ろう

 ではカスタム投稿タイプを実際作ってみましょう。

 「ソニー」や「パナソニック」などのターム自体はWordPressの管理画面から自由に追加したりできますが、その大枠であるカスタム投稿タイプ、カスタムタクソノミーを作るには、functions.phpにコードを書く必要があります。

 functions.phpはミスると真っ白になるのでFTPソフトを片手に慎重にいじるようにしましょう。

カスタム投稿タイプを作る

 まずは「おすすめ商品」というカスタム投稿タイプを作ります。「おすすめ商品」のslug(と呼んで良いのかな?)は「item」にします。

/* カスタム投稿タイプ */
add_action( 'init', 'create_post_type' );

function create_post_type() {
  register_post_type(
    'item',  /* 投稿タイプのslug */
    array(
      'labels' => array(
        'name' => __( 'おすすめ商品' ),
        'singular_name' => __( 'おすすめ商品' )
        ),
      'public' => true,
      'menu_position' => 5,
      'supports' => array('title','editor','thumbnail','custom-fields','excerpt','author','trackbacks','comments','revisions','page-attributes')  /* いろんな機能を有効化 */
    )
  );

}

 これをfunctions.phpの適当な場所に貼り付ければOKです。これでWordPress管理画面の左のMENUの中に「おすすめ商品」っていうのが表示されているはずです。
※カスタム投稿タイプでサムネイルを使うには、add_theme_support( ‘post-thumbnails’ );も要ります。

カスタムタクソノミーを作る

 続いて「おすすめ商品」のタクソノミーを設定します。まずは「カテゴリー」というタクソノミーを作りましょう。
 上記のcreate_post_type()という関数の{ }の中にこれ↓を貼り付けます。

/* カスタムタクソノミー1 */
register_taxonomy(
  'item-category',  /* タクソノミーのslug */
  'item',           /* 属する投稿タイプ */
  array(
    'hierarchical' => true,
    'update_count_callback' => '_update_post_term_count',
    'label' => 'カテゴリー',
    'singular_label' => 'カテゴリー',
    'public' => true,
    'show_ui' => true
  )
);

 「カテゴリー」のslugはitem-categoryにしています。属する投稿タイプはitemです。上記のカスタム投稿タイプを作るコードの下に貼り付ければOKです。

 もう一つ「メーカー」というタクソノミーを追加します。タクソノミーを追加したい場合、register_taxonomy()という関数を並べてもう一つ書けばOKです。

/* カスタムタクソノミー2 */
register_taxonomy(
  'item-maker',  /* タクソノミーのslug */
  'item',        /* 属する投稿タイプ */
  array(
    'hierarchical' => true,
    'update_count_callback' => '_update_post_term_count',
    'label' => 'メーカー',
    'singular_label' => 'メーカー',
    'public' => true,
    'show_ui' => true
  )
);

 「メーカー」のslugはitem-makerにしています。属する投稿タイプは同じくitemです。

全コードまとめ

 まとめると、以下のコードでおすすめ商品という投稿タイプを作って、その分類として「カテゴリー」と「メーカー」というタクソノミーを作れます。

/* カスタム投稿タイプ */
add_action( 'init', 'create_post_type' );

function create_post_type() {
  register_post_type(
    'item',  /* 投稿タイプのslug */
    array(
      'labels' => array(
        'name' => __( 'おすすめ商品' ),
        'singular_name' => __( 'おすすめ商品' )
        ),
      'public' => true,
      'menu_position' => 5,
      'supports' => array('title','editor','thumbnail','custom-fields','excerpt','author','trackbacks','comments','revisions','page-attributes')  /* いろんな機能を有効化 */
    )
  );

  /* カスタムタクソノミー1 */
  register_taxonomy(
    'item-category',  /* タクソノミーのslug */
    'item',           /* 属する投稿タイプ */
    array(
      'hierarchical' => true,
      'update_count_callback' => '_update_post_term_count',
      'label' => 'カテゴリー',
      'singular_label' => 'カテゴリー',
      'public' => true,
      'show_ui' => true
    )
  );

  /* カスタムタクソノミー2 */
  register_taxonomy(
    'item-maker',  /* タクソノミーのslug */
    'item',        /* 属する投稿タイプ */
    array(
      'hierarchical' => true,
      'update_count_callback' => '_update_post_term_count',
      'label' => 'メーカー',
      'singular_label' => 'メーカー',
      'public' => true,
      'show_ui' => true
    )
  );
}

 slugや名前の部分を適当に変えたらあなたなりのカスタムが出来ますのでやってみてください。くれぐれも慎重に。FTPソフト必須ですよ。

カスタム投稿タイプを使いこなす

 作るだけなら簡単なんですが、このカスタム投稿タイプを十分に使いこなすには、いろんなテンプレートタグ(WordPressで用意されてる関数)を使いこなす必要があります。

 しかし投稿タイプ、タクソノミー、タームなどの言葉の意味を構造的に理解できていれば、WordPress Codex 日本語版とか、その他ググって出てくる良心的なサイトで情報をかき集めればなんとかなると思います。

 頑張って思い通りのwebサイトを作れるようになりましょう。

分からないことはteratailでプロのエンジニアに聞いてみて下さい。↓

おすすめサーバー

第1位ConoHa WING

どこよりもハイスペックで、どこよりも安いという異次元のコスパ。しかもワードプレスに特化されていて扱いやすい!現状では文句の付けようがない圧倒的No.1

第2位シン・レンタルサーバー

レンサバ業界の老舗とも言える安定のエックスサーバーが打ち出した新サービス!業界震撼のコスパはまさに新時代の幕開け!

第3位 MixHost

サーバースペックへのこだわりは随一、コスパも◎、利用者急上昇中の新世代レンタルサーバーです!

参考【徹底比較】ConoHa WING 対 エックスサーバー

参考【徹底比較】ConoHa WING 対 mixhost

参考【徹底比較】エックスサーバー 対 MixHost

コメントを残す




関連記事

Pick Up