タグやカテゴリーを設定しよう
🚕
NKSSG では、記事を分類するために タクソノミー (taxonomy) を使うことができます。タグやカテゴリーがタクソノミーの例です。
ここでは、タグやカテゴリーの使い方、他のタクソノミーの設定方法などを説明していきます。
タクソノミーは何のためにある?
タクソノミーがあると、記事をいろいろな切り口で分類することができます。
例えば、プログラミングの記事が多いサイトがあるとしましょう。このサイトに来た人の中には、「Python について書かれた記事だけを見たい」という人もいるでしょう。こうした場合、Python に関する記事の一覧が表示できると便利です。
タクソノミーがあれば、いろいろな切り口で記事の一覧を簡単に作ることができます。サイトを見に来た人にとって、記事が探しやすくなります。
また、タクソノミーを見れば、「このサイトはどういうテーマを扱っているのか?」がわかるので、サイトの説明にもなります。
タクソノミーとターム
タクソノミーは分類方法・分類名のことで、タームはその分類に使われる項目・項目名のことです。
例えば、Python について書かれた記事には、「プログラミング」や「Python」といったタグがついているかもしれません。この「タグ」がタクソノミーの例で、「プログラミング」「Python」がタームの例です。
デフォルトのタクソノミー
NKSSG のインストール直後では、tag
と category
という2つのタクソノミーが登録されています。また、これら以外にも、あとで説明する方法で、好きなタクソノミー・タームを追加することができます。
tag(タグ)
タクソノミー tag
は、記事を分類するためのラベルのようなものです。キーワードだと考えてもいいでしょう。
WordPress の tag
, post_tag
(タグ)に対応しています。
category(カテゴリー)
タクソノミー category
は、記事をグループ分けするために使う分類です。
category
も tag
も、記事を分類する点では同じです。ただ、イメージでいうと、 category
は 📁フォルダでの分類、 tag
は 🏷ふせんでの分類に対応していると考えるとわかりやすいでしょう。
タグやカテゴリーのつけ方に、厳密なルールはありません。ただ、一般には、タグに比べてカテゴリーの数は少なく、1つの記事に設定するカテゴリーの数も少ないです。カテゴリーは、広い範囲を指す言葉が選ばれます。
タクソノミーの設定方法
タクソノミーやタームを使うには、設定ファイルへの登録と、各記事への設定の両方が必要です。以下では、この2つについて説明します。
設定ファイルへのタグなどの登録
まず、タクソノミーやタームをサイト内で使うために、nkssg.yml
ファイルで設定します。デフォルトでは次のようになっています。一部だけを抜き出しています。
taxonomy:
- tag:
- tag1
- category:
- cat1
taxonomy
の後に、tag
と category
という2つの設定がリストになっています。また、それぞれのタクソノミーに、タームのリストが設定されています。
この設定には YAML 記法を使っています。後の説明でも設定の仕方は書いていますが、YAML 記法についてまとめて知りたい人は、次の記事を参考にしてください。
タグやカテゴリーにタームを追加したい場合は、同じようにリストに値を追加します。例えば、次のようにします。
taxonomy:
- tag:
- tag1
- tag2
- category:
- cat1
- cat12
こうすると、追加した値を名前(name) に持つタームが登録されます。
さらに、各タームには、スラッグ(slug) や親(parent) も設定できます。スラッグは URL に使います。親は階層化するために使います。
taxonomy:
- tag:
- tag1
- tag 2:
slug: tag2
- category:
- cat1
- cat12:
parent: cat1
ターム名の後にコロンがついていることに注意しましょう。次に紹介する「タクソノミーの登録」の例も参考にしてみましょう。
メモ
WordPress では、タグは階層化できませんが、NKSSG ではタグにも親を設定することができます。NKSSG では、タグとカテゴリーで設定できる項目に差はありません。
インストール直後は、入力例としていくつかのタームが登録されています。邪魔な場合は削除しても構いません。その後、自分の好きなタームをタグやカテゴリーに登録しましょう。
設定ファイルへのタクソノミーの登録
先ほどは、既存のタクソノミーである tag と category にタームを追加する方法を見ました。ここでは、さらにタクソノミー自体を追加する方法を見てみます。
例えば、"国" (country) というタクソノミーを追加し、いくつかのタームを設定してみます。次のように追加すればいいです。
taxonomy:
(タグとカテゴリの設定は省略)
- 国:
- 日本
- アメリカ
- 中国
こうなります。「国」(タクソノミー名)の後に、半角コロンがあることに注意しましょう。
メモ
これは、WordPress でいう「カスタムタクソノミー」に対応しています。
これでタクソノミーとタームの設定ができていますが、これだけだと、アーカイブページの URL に日本語が含まれてしまいます。URL 用の表示設定を行うために、slug
を設定することができます。次のようにします。
taxonomy:
- 国:
- slug: country
- 日本:
slug: japan
- アメリカ:
slug: usa
- 中国:
slug: china
タクソノミー名、ターム名の後に、コロンが入っているところに注意しましょう。
このように設定した場合、/country/
という URL にアクセスすると、「国」というタクソノミーを設定した記事一覧が表示されます。また、/country/japan/
という URL にアクセスすると、フロントマターで「国: ["日本"]」と設定した記事の一覧が表示されます。
階層化することもできます。少し複雑になりますが、次のようにします。
taxonomy:
- 国:
- slug: country
- アジア:
slug: asia
- 日本:
slug: japan
parent: アジア
- アメリカ:
slug: usa
- 中国:
slug: china
parent: アジア
アジアというタームを追加し、日本と中国をその下に配置するようにしました。階層化するには、それぞれの親を指定するようにします。親(parent) は、いるとすれば必ず1人なので、子がだれかを指定するよりも楽です。parent には、slug
ではなく、タームの名前を指定しましょう。
各記事へのタクソノミーの設定
ここまでが、タクソノミーの登録方法です。これで、各記事でタグやカテゴリー、タクソノミーが使えるようになります。
各記事にタクソノミー・タームを設定するには、次のようにします。
---
title: "東京旅行1日目"
tag: ["travel"]
国: ["日本"]
---
フロントマターで、上のようにします。こうすると、/tag/travel/
という URL にアクセスすると、この記事が一覧に載ってきます。
また、nkssg.yml
で次のように設定している場合
taxonomy:
- 国:
- slug: country
- アジア:
slug: asia
- 日本:
slug: japan
parent: アジア
/country/japan/
だけでなく、/country/asia/
にもこの記事が一覧に載ってくることになります。各タームのアーカイブページには、そのタームかその子孫のどれかに含まれる記事すべてが一覧に載ります。
なお、nkssg.yml
にタクソノミーの設定をしていない場合は、各記事にタクソノミーの設定をしても、アーカイブは作成されません。また、親子の関係がおかしい場合(parent
で設定したタームが存在しない場合)も、アーカイブは作られないので注意しましょう。
各記事にタクソノミーを設定したのにうまく反映されない場合は、nkssg.yml
での設定がうまくいっているか、確認しましょう。