実現したいこと
WORDPRESSの固定ページ内で、
親ページに対して複数の子ページがあるときに、
子ページの最後に他の子ページの一覧をアイキャッチ画像付きで出力したい
前提
例えば、親ページ「A」に対して子ページ「B1」「B2」「B3」...とあるとき、
「B1」ページの最後に他の子ページの紹介がアイキャッチ画像付きで並ぶ。
子ページ内からランダムで3記事を出力
また、この処理をするコードは、固定ページ内にショートコードで埋め込んでいます。
発生している問題
ランダム出力も問題なく動き、
パーマリンクやタイトルについては他の子ページのものが正しく出力されますが、
「今見ているページのアイキャッチ画像」が出力されてしまいます。
ランダムで読み込んでいる記事のアイキャッチ画像を出力したいです。
ループ内なら、ループ中の記事のアイキャッチ画像を
参照して出力すると思っていたのですが、違うのでしょうか?
該当のソースコード
<?php $page_parent = get_page_by_path('product') -> ID; //親ページのIDを取得 $args = array( 'posts_per_page' => 3, //表示する件数 'post_parent' => $page_parent, //親のIDを指定 'post_type' => 'page', 'post_status' => 'publish', 'orderby' => 'rand', // 記事のランダム表示設定 ); $page_child = get_posts($args); ?> <?php foreach($page_child as $child): $child_id = $child->ID; ?> <div class="item"> <div class="photo"><a href="<?php echo get_the_permalink($child_id); ?>"> <?php the_post_thumbnail('thumbnail'); ?></a> </div> <div class="text"> <p class="title"><a href="<?php echo get_the_permalink($child_id); ?>"> <?php echo get_the_permalink($child_id); ?> </a></p> </div> </div> <?php endforeach; ?>
試したこと
アイキャッチ画像の出し方を下記のようにもしてみたのですが、結局かわらずでした。
<?php $image_id = get_post_thumbnail_id(); $image_url = wp_get_attachment_image_src($image_id, true); ?> <img src="<?php echo $image_url[0]; ?>" alt="">
よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/03/23 03:19