新潟県妙高市|ホームページと広告の相談相手

妙高Web屋

お仕事のご依頼お見積りのご依頼

WordPress

get_the_category()のカテゴリー取得をID順に変更する【WordPress】

2019.3.15

get_the_category()のカテゴリー取得をID順に変更する【WordPress】
WordPress 0 0

こちらの記事は、このような方におすすめです。

「自分が設定した順にカテゴリーを表示したい」というコーダーさん、デザイナーさん

WordPressでホームページを作っていると、

「この投稿が属しているのは、カテゴリーAとカテゴリーBと…」

という情報を取得したいと感じる場面は多くあることでしょう。

ただ、関数[get_the_category()]で取得したカテゴリーをそのまま表示する場合、表示順は「スラッグ順」になっていないでしょうか?

もちろん、それでも問題ない場合もありますが、ホームページ制作者が設定したカテゴリー順に表示させたい場合も、あるかと思います。

そして、ホームページ制作者が設定した順ということは、それは基本的に「カテゴリーID順」であると考えられます。

今回の記事では、get_the_category()のカテゴリー取得をID順に変更する方法をご紹介します。

この記事の目次

【結論】関数[get_the_category()]のカテゴリー取得をID順に変更する方法

まずは結論から。

[functions.php]のバックアップをとったうえで、phpファイルの末尾にこちらの記述を追加してみてください。

function get_the_category_by_id($categories) {
usort($categories, '_usort_terms_by_ID');
return $categories;
}
add_filter('get_the_categories', 'get_the_category_by_id');

関数[get_the_category()]の機能を拡張する形です。

ページの先頭へ戻る

[考察]投稿のカテゴリーをID順に取得・表示させる方法について

例えば、WordPressの記事を更新する立場の方が思いのままに設定したカテゴリーに順序関係がない場合、例えば、

「今日は人参(Carrot)に関する記事を書いて、明日はぶどう(Grape)の記事を書く予定で、来週は…」

という形で追加していったカテゴリはスラッグ順でも特に問題ないかと思います。

[親カテゴリ:Fruit]
(子カテゴリ:Apple)
(子カテゴリ:Grape)
(子カテゴリ:Orange)

[親カテゴリ:Vegetable]
(子カテゴリ:Carrot)
(子カテゴリ:Potato)

一方で、ホームページ制作者の方々が「この順にカテゴリーを表示させたい」という意図を持ってカテゴリーが設定されている場合には、それらを設定順、すなわち原則的には「カテゴリーID順」に表示されてほしい場合もあるかと思います。

上記のコードは、そのような場合の対処方法として活用できるかと思います。

ちなみに「12ヶ月」をカテゴリーにする場合、数値も「文字列」として解釈されるため、下記のように表示されることがあります。

[カテゴリ:1月]
[カテゴリ:10月]
[カテゴリ:11月]
[カテゴリ:12月]
[カテゴリ:2月]
[カテゴリ:3月]
[カテゴリ:4月]
[カテゴリ:5月]
[カテゴリ:6月]
[カテゴリ:7月]
[カテゴリ:8月]
[カテゴリ:9月]

しかも、1月を[January]みたいな形式のスラッグにするのであれば、なおさら順序がバラバラになってしまいますよね。

なので、設定時に「この順で表示したい!」という順番でカテゴリーを設定した上で、上記のコードを[functions.php]内に追記するのが良いと思います。

ページの先頭へ戻る

参考サイト

今回の記事を作成するにあたり、こちらのページを参考にさせていただきました。

ありがとうございました。

ページの先頭へ戻る

こちらの記事に感想をお寄せください

こちらの記事をご覧いただき、感じたことなどありましたら下記のボタンを押していただき「感想投稿フォーム」よりお気軽にご感想をお寄せください。

この記事の感想を投稿する
0 0

LINE@始めました!

妙高Web屋ではこのたび、LINE@(ラインアット)を始めることとなりました。

企業やお店のWeb担当者さまへ向けて、ホームページの運営・管理・更新に関する情報を発信していきます。

情報を購読できる「友だち」へのご登録は、下記のボタンよりお願いいたします。

目的のページは見つかりましたか?

お探しのページが見当たらない場合は、キーワードを手がかりに、サイト内検索をご利用ください。

または、下記のボタンより「サイトマップ」のページにアクセスしていただき、お探しください。

目的のページは見つかりましたか?
Twitterでシェアする Twitterでシェアする Facebookでシェアする Facebookでシェアする Feedlyで購読する Feedlyで購読する お問い合わせお問い合わせ ページの先頭へページの先頭へ