WordPressのターム、親に持つ子、孫を全て取得する。
WordPressのtaxonomy(タクソノミー)に設定するタームは親→子→孫と階層構造を持つことができます。
もちろん、表現方法は、親子孫以外にも、第一階層→第二階層→第三階層・・・と表現する事もできます。
今回は、親→子→孫で表現させていただきます。
「親子孫」階層を使う事で、エリア毎のページ(例えば、関東→埼玉県→所沢市)を準備したり、カテゴリ毎のページ(家電製品→エアコン→富士通ゼネラル)を準備したりとエリアやカテゴリ毎にページを準備することでSEO対策を施す事ができます。
今回ご紹介するのは、親から、すべての子、孫のデータを取得する方法についてご紹介させて頂きます。
Wordpressで準備されている「get_post_ancestors関数」とは逆方向(孫や子から親情報を取得(祖先を取得))の取得方法ですが、参考までにget_post_ancestors関数についても、最初に記載させていただきます。
(get_post_ancestors関数については、あまり情報がないため、今後も利用できるかどうかは、ご自身でご確認ください。)
1.get_post_ancestors関数(ご参考)
get_post_ancestors($ID)
この関数は、特定の投稿やページの祖先のIDを取得するために使用されます。
get_post_ancestors関数は、投稿のIDを引数とし、その投稿の祖先のIDを配列で返します。祖先のIDは、階層的な投稿タイプ(例:ページ)において、親ページや親カテゴリなどを指します。
例)get_post_ancestors($ID)のサンプル
1 2 3 4 5 6 7 8 | $post_id = 123; $ancestors = get_post_ancestors($post_id); // $ancestorsには祖先のIDが配列として格納されます foreach ($ancestors as $ancestor_id) { echo "Ancestor ID: " . $ancestor_id . "<br>"; } |
上記の例では、投稿IDが123の投稿の祖先のIDを取得し、格納された祖先のIDをループで表示しています。
実際利用するにあたっては、Wordpressの公式Codex、開発者ドキュメントを参照してください。
今回の目的は祖先ではなく、親から子や孫(子孫)を取得しますので、その取得方法を次項に記載します。
2.親から子、孫を取得する。
こちらはWordpressに関数が無いため(※1)、独自に再帰呼び出し(※2)の関数を作り、親から子、孫がなくなるまで本関数を呼び出し取得していきます。
1 本ブログ掲載時点で調査した限りでは見つかりませんでした。
2 関数が自身の定義内で自分自身を呼び出すプログラムで、関数がその処理を実行する中で、同じ関数を再度呼び出すことになり、複雑な処理をシンプルにすることができます。但し、きちんと試験などしないと無限ループに陥ったりしますので注意は必要です。
例)階層構造をもったジャンル(カテゴリ)の親の投稿IDから子、孫を取得
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | //------------------------------------------ // ジャンルの子、孫を取得(再帰呼出用) // get_descendants_genre //------------------------------------------ function get_descendants_genre($post_id){ $child_args = array( 'post_type' => 'genre', 'posts_per_page' => -1, 'post_parent' => $post_id, ); $child_posts = get_posts($child_args); if($child_posts){ foreach($child_posts as $child_post){ $select_genre .= get_descendants_genre($child_post->ID); } } return $select_genre; } |
実際の出力内容に合わせて上記の内容は変更する必要はありますが、再帰呼び出しで取得する基本構成はこのような形になります。
以上、皆さまのお役に立てれば幸いです。
WEB DESIGN全てお任せ!ホームページ制作
RishunTradingでは、日本にはないコンセプトや高いデザイン性をもったヨーロッパ製品の輸入販売、及び、Webサイト制作事業などをおこなっております。
「全てお任せ!ホームページ制作」は、ドメイン取得からサーバー設定、レスポンシブルデザイン(スマホ、タブレット対応)、SEO対策がすべて含まれたお得なホームページを制作するサービス商品です。
運用開始後に「Webサイト運用管理サービス(保守)」と組み合わせて購入しますと、メンテナンス、更新も含めてすべて弊社で実施しますので、お客様は安心して本業に集中する事ができます。
しかもなんと、「全てお任せ!ホームページ制作」は、¥100,000!で提供しております。
本業が忙しい中小企業様に大変ご好評を頂いている商品です。
独自ドメイン取得
サーバー開設&設定
レイアウト設計
レスポンシブルデザイン
(*1)検索エンジン最適化
(SEO対策)場所Maps
お問い合わせフォーム
SSL化
各種SNS連携
運用マニュアル