ワードプレスで記事詳細ページやらで表示してる、記事に紐づいてるカテゴリ一覧。そのカテゴリ一覧から任意のカテゴリを除外して表示したい!そんな場合もありますよね。

スライダーに表示するために振ったカテゴリを除外したいとかそういう場合が。

ここではワードプレスの記事に紐づいてる任意のカテゴリを除外して表示する方法を紹介したい。

 

やり方はちゃんとある

やりたいことは完全にコレ。tha_category()っていうその記事に紐づいているカテゴリーを表示する関数からいらないカテゴリだけ除外できちゃう。

これをまねればOK!なんだけれども気になる点がいくつかある。

 

フィルターかー…

まずget_the_categoriesというフィルターを使ってるのがけっこう大がかりだなーと。

フィルター使うってことはこれfunctions.phpいじらないといけないやつじゃん。なんかthe_category()にexclude入れるだけでできるんじゃないかなー、と思ってたら意外なほど小回り効かなくて困惑しちゃうやつです。

 

foreach回すのか…

あとあんまりphpでforとかforeach回したくないんですよね。ものすごくなんとなくなんですが。

あんまりサーバーを苦しめたくないというか、圧迫したくないというか。こんなん誤差だろうけどできればグルグル回したくない、っていうなんかこだわりがありまして。

 

しょうがないので

そもそもカテゴリを除外したいっていうのは自分では管理用に振りたいカテゴリがあるけど人さまには見せたくない、っていう事だと思います。だから該当するカテゴリだけを除外して非表示にしたい、と。

んじゃいっそカテゴリじゃなくてタグやカスタムタクソノミーにすればいいじゃん、で今回解決…いや厳密には解決してないんですがぐるっと回り込む形でやりこみました。

カテゴリは表示するもんだ!んで、非表示で管理する項目はカスタムタクソノミーにするんだ!ていう考え方のほうが自然というか。そもそもそういう用途でカスタムタクソノミーてあるんじゃねーのかな、と。

今回は全く使ってなかったタグを非表示の管理用に流用しちゃいましたが、変にカテゴリーの一部を非表示にするよりまっすぐなコーディングになった気がします。

 

……

 

 

逃げただけじゃん、て言わないでね!

 

まとめ

ワードプレスで記事に設定したカテゴリーのうち任意のカテゴリを除外して表示する方法なんかを紹介しました。

結局一部のカテゴリーだけ非表示っていうのはそもそもそうしないといけない状態自体がいびつな気がしたんで、カスタムタクソノミー(今回はタグ)で流用しましたが、たぶんその方が多くの場合シンプルな設計になると思います。

とにかくたかがカテゴリー一つ非表示にするだけでfor文回したくなかった。the_categoryにexclude渡すだけでかんたん実装できるならまだしも。

そのカテゴリー本当に非表示にする必要がある?除外する必要がある?ていうのから考えてみてもいいと思います。んでどうしてもカテゴリ除外したいんだ!ていう場合は参考サイトのようにget_the_categoriesフィルター噛ませてやればやれることはできます。理想的に。

ただやっぱfor文がな~…。めちゃくちゃループ処理嫌いなんですよね。最後は完全に個人の好みの話になってしまいました。

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