ワードプレス、記事に設定されてるカテゴリの中から親カテゴリは出力したくないから除外して、子カテゴリだけ表示したい!そういう場合ありますよね。

ということでここではワードプレスで親カテゴリを覗いて子カテゴリだけ表示する方法を紹介。

 

めっちゃ簡単!

記事に紐づいているカテゴリを出力するときに使用する「the_category」。これをこうするだけ。

変更前:

<?php the_category(' ', 'multiple'); ?>

変更後:

<?php the_category(' '); ?>

 

めっちゃ簡単でしたね。わざわざ記事にする必要あったんか、というくらい。

 

the_category()について

the_catregory()、これはワードプレスで記事ごとに設定されてあるカテゴリ一覧を一発で表示できるスグレモノ。たぶんみーんな使ってますよね。

ものすごい当たり前のように使ってて逆に知識がない!という私みたいな方のためにthe_category()をサクッと振り返っておきますね。

 

第一引数の「' '」て何?

ワードプレスで最もよく使われてるんじゃねーかというthe_categoryの最初の引数「' '」て何なの?について。

この第一引数は区切り文字が指定できる

the_categoryて何もつけずにthe_catregory()と呼ぶと、カテゴリが「<li>」に囲われて出てくるんです。てことでけっこう使いづらい。んじゃなくしちゃえ!てことで第一引数に空白を設定してるんです。

こうやっとくとカテゴリとカテゴリの間になんも区切り文字が入らず(空白だから)にシンプル出力できちゃうってこと。

ちなみに「the_category(',')」とかにするとカテゴリとカテゴリの間に「,」が入るようになります。

 

multipleってなんなん?

んじゃthe_categoryの第2引数の「multiple」ってなんなん?ていうのもついでに。

multipleにすると親カテゴリも一緒に出力しまっせー!ということになる。

 

……

 

 

そうなんです。お恥ずかしいことになーんも考えずに<?php the_category(' ', 'multiple'); ?>を使ってたんで、multipleが親カテゴリも表示、ていう指定だというのを知らなかったんですね。

てことで子カテゴリだけ出したい、場合はただ第2引数のmultipleを省略すりゃいいだけ、という。もともとない第2引数を追加してたというアホやらかしてるわけですね。いやーまいったまいった!がはははっ。

…はい、恥ずかしいついでにもうちょい。実はmultipleの他にsingleっていうのも設定できて、結局the_categoryの第2引数は、

 

  1. そもそも設定しない
  2. multiple
  3. single

 

の3つの設定があるってことに。singleてなんやねん、というと、

 

  1. そもそも設定しない:子カテゴリだけ
  2. multiple:親カテゴリへのリンク&子カテゴリへのリンク
  3. single:親カテゴリは表示だけ&子カテゴリへのリンク

 

という謎の出力をかまします。字だとようわからんよね。実際の出力でいうと…。

例えば、「おばあさん→おかあさん→ハナコ」というカテゴリ関係だったとします。

ハナコが子カテゴリ、おかあさんが親カテゴリ、おばあさんは…なんていうんだろうグランマカテゴリ?まーしらんけど、2重になってる感じです。

この場合、

 

multiple:

<a>おばあさん</a><a>おかあさん</a><a>ハナコ</a>

single:

<a>おばあさん おかあさん ハナコ</a>

 

こうなる。

うーん、single使うタイミングなんて割りばしに入ってるつまようじ使うタイミングくらい少ない気がする。逆に落としちゃってないか気になるよね、あのつまようじ。何の話だろう。

 

まとめ

ワードプレスで親カテゴリは除外して子カテゴリだけ表示する方法を紹介しました。

いやーなんも考えずに<?php the_category(' ', 'multiple'); ?>使ってたのがダメだったんですね。普通にmultiple外せば子カテゴリだけ表示されるのでした。

参考にしてみてくださいね!