【WordPress】特定の固定ページの子ページをget_posts()で取得する方法
2022.12.20 Posted by Coding_team
WordPressでサイト制作する際、同じパーツを各所に出すので共通化しておきたい、ということはよくありますよね。
サービス一覧を各所に出したいこととか、よくあります。
今回は特定の固定ページの子階層の一覧を取得し、foreachで出力する方法をご紹介します。
サンプルコード
「/service/」ページ配下を取得する例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php $page_parent = get_page_by_path('service') -> ID; //親ページのIDを取得 $args = array( 'posts_per_page' => 10, //表示する件数 'post_parent' => $page_parent, //親のIDを指定 'post_type' => 'page', 'order' => 'ASC' ); $page_child = get_posts($args); ?> <ul> <?php foreach($page_child as $child): $child_id = $child->ID; ?> <li> <a href="<?php echo get_the_permalink($child_id); ?>"> <p class="img"><img src="<?php echo get_the_post_thumbnail_url($child_id, 'full'); ?>" alt=""></p>'; <h3 class="name ttl"><?php echo get_the_title($child_id); ?></h3> </a> </li> <?php endforeach; ?> </ul> |
get_posts() をするときに、’post_parent’を指定することにより
子階層ページ一覧を取得しています。
2行目の「get_page_by_path」の引数は適宜変更し、親のディレクトリを指定するようにしてください。
アイキャッチ画像のURLを取得する関数
ちなみに、上記コードの19行目で使用している「get_the_post_thumbnail_url()」は投稿のアイキャッチ画像URLを取得する関数です。
引数に投稿IDを指定できるので、今回のような例で便利です。
第二引数にはサイズを指定します。
‘thumbnail’, ‘medium’, ‘large’, ‘full’ の中から指定できます。
自由自在なWordPressですから、共通化できるところは共通化して、キレイなWordPressサイトを作っていきたいですね。
以上、クリエイターズメモでした。
関連記事こちらの記事も合わせてどうぞ。