このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

get_the_categoryの返り値が配列の理由を解説(WordPressショートコード)

get_the_categoryの返り値がよく分からず、悩んでいませんか?

get_the_categoryはWordpressのショートコードを作ろうとすると、よく使う関数です。

記事のカテゴリーを取得する関数なのですが、返り値が配列であることにピンと来ていない人もいるのではないでしょうか?

PHPの開発経験のある私が、get_the_categoryがどのような関数なのかバシッと解説したいと思います。

get_the_categoryはどのような関数か?

get_the_categoryは記事のIDを渡して、記事の属するカテゴリーを得るために使うものです。
例えば、記事と同じカテゴリーの記事を関連記事として表示するために使います。

get_the_categoryは次のように記載します。

$id:記事の投稿IDを記載します。省略した場合は現在の投稿IDとなります。
返り値:カテゴリーのオブジェクトの配列です。

参考:Wordpress日本語版ドキュメント
https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/get_the_category

get_the_categoryの返り値はなぜ配列なのか

この関数の返り値はカテゴリーのオブジェクトの配列です。

最初、1つの記事のカテゴリーなのにどうして配列(複数個)なんだ?と疑問でした。
配列で返される理由は、1つの記事に複数のカテゴリーを設定できるためです。

例えば、この記事はWordPressとphpカテゴリーに属するため、get_the_categoryを行うと、WordPressとphpのカテゴリーの配列が返されます。

具体的なコードで配列の0番目([0])をよく指定するのは、カテゴリーの1つ目を指定するためです。

<?php
$category = get_the_category(); 
echo $category[0]->cat_name;
?>

例えば、このコードを実行すると記事の1つ目のカテゴリー名が表示されます。
出典:Wordpress日本語版ドキュメント

複数個のカテゴリーを設定していないのならば、配列の0番目([0])を指定すればOKと覚えておきましょう。