Help us understand the problem. What is going on with this article?

WordPressで使う、カテゴリー・タクソノミー・スラッグって色々あるけどなんじゃそりゃ?

More than 1 year has passed since last update.

WordPressで構築し始めると、
普段聞きなれないタクソノミー・スラッグ等の言葉が出てきますよね。
カテゴリーじゃないの?
カテゴリーと何が違うの?
何を取得しようとしているのか?混乱する事もあるので
自分用にも備忘録まとめです。

カテゴリー

これは一番分かりやすいと思いますが、
いわゆる記事をカテゴライズするものですね。

前提として、WordPressには様々な投稿タイプがあります。
デフォルトの投稿タイプは全部で5つ

投稿 (投稿タイプ: 'post')
固定ページ (投稿タイプ: 'page')
添付ファイル (投稿タイプ: 'attachment')
リビジョン (投稿タイプ: 'revision')
ナビゲーションメニュー (投稿タイプ: 'nav_menu_item')

詳しくはこちら:
http://wpdocs.osdn.jp/%E6%8A%95%E7%A8%BF%E3%82%BF%E3%82%A4%E3%83%97

その中で、通常記事を投稿するのに使うのが、投稿タイプ: 'post'
管理画面で言うと「投稿」の欄になります。

投稿欄のタブには、デフォルトで「カテゴリー」と「タグ」を追加出来るようになっているので、
馴染みがあるかもしれません。

例えば、ブログを書くとすれば
内容に合わせてカテゴライズして投稿することが出来ます。

category.png

スラッグ

お次はスラッグ。
既に、管理画面でカテゴリーを追加する時に「スラッグ」と言う欄が出てきてますね。
さらに、説明もしっかり書いてありました。

“スラッグ” は URL に適した形式の名前です。通常はすべて半角小文字で、英数字とハイフンのみが使われます。

URLに適した形式の名前

URLに適した形式の名前と言うと分かりにくいですが、
固有の名前付けのようなイメージで、
スラッグに付けたものが、そのままURLの一部になります。

例えば、先程作ったカテゴリーにこんな感じでスラッグをつけて行くと、

slug.png

スラッグがそのままURLに反映されます。

http://hoge/food/
http://hoge/movie/
http://hoge/book/

記事データの絞り込みに使う

さらに、このスラッグ名を使って、
記事データを取得することが出来ます。

例えば、投稿を取得するパラメータで
category_nameにスラッグ名を入れると
記事のカテゴリー絞り込みが出来ます。

$args =  array(
  'post_type'      => 'post',
  'category_name'  => 'food'
);

// カテゴリー「食べ物」だけの記事で絞り込みが出来る

タグ

こちらも投稿欄にデフォルトで追加出来るようになっているので、
馴染みがあると思います。

カテゴリーがカテゴライズだとすれば、
タグはキーワードの目印を付けるような感じだと分かりやすいかもしれません。

カテゴリーと同じように、名前とスラッグを設定して使います。

tag.png

タクソノミー

そしてお次は、タクソノミー。
1番馴染みがなさそうな言葉ですよね。

意味的には「分類」になるのですが、
カテゴリーと何が違うのかというと...
実は、カテゴリーもタクソノミーも同じです。

...と言いつつ、実態は同じではなくて、
タクソノミーの中にカテゴリーがあるというイメージです。

つまり、今まで出てきた「カテゴリー」「タグ」をまとめて「タクソノミー」となります。
タクソノミー(分類)のうちの1つが「カテゴリー」だったり「タグ」だったりする訳ですね。

ターム

タクソノミーを追加すると、次に出てくる言葉が「ターム」
タームって何なの?というと、
タクソノミー「カテゴリー」「タグ」で追加した項目部分のことです。

例えば、記事をカテゴライズするために作った「カテゴリー」タクソノミー。
「新規カテゴリー」ボタンで「食べ物・映画・本」というカテゴリーを追加して行くと、こんな感じになります。

slug.png

この、名前の列に出来た「食べ物・映画・本」という項目がタームです。

管理画面では「名前」という出ているのに、タームと呼ぶのでちょっと混乱しちゃいますよね。
タームは、タクソノミーの項目と言うと分かりやすいかもしれません。

カスタム投稿タイプ

さらに、WordPressを使い進めると、デフォルトの要素だけでは事足りなくなってきますよね。
個人のブログなら、「お知らせ」の投稿がしたいな〜とか、
会社のサイトなら、「社員紹介」の投稿したい、などなど。

前記したように、WordPressのデフォルトの投稿タイプは全部で5つですが、
この他にオリジナルで投稿タイプを追加することが出来ます。

それが、カスタム投稿タイプ。

カスタム投稿タイプは、functions.phpにregister_post_type()を使って追加することが出来ます。

詳しくはこちら:
http://wpdocs.m.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/register_post_type

カスタムタクソノミー

さらにさらに、カスタム投稿タイプにも「カテゴリー」「タグ」を追加する事が出来ます。
それらをまとめて、カスタムタクソノミーと呼びます。

カスタムタクソノミーは、functions.phpにregister_taxonomy()を使って追加することが出来ます。

詳しくはこちら:
https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/register_taxonomy


カテゴリーやタクソノミー、スラッグやタームなど、
混乱しがちなあれこれをまとめてみました。

自分が今何を取得したらいいのか迷った時に、
この辺りが頭の片隅にあると欲しいものが手に入りやすくなるかもしれません🙈

おわり!

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away