同ターム記事を一覧表示すると最新記事の画像しか表示されない
-
ポストタイプ名:testpost/タクソノミー名:testtaxという設定で、
カスタム投稿の記事ページで同じタームを持つ記事を一覧表示するために
「taxonomy-testtax.php」を使って下記のようなソースを書かせていただきました。<?php $term = array_shift(get_the_terms($post->ID, 'testtax')); ?> <?php $tax_posts = get_posts('post_type=testpost&posts_per_page=5&taxonomy=testtax&term='.esc_html($term->slug)); if($tax_posts): ?> <?php foreach($tax_posts as $tax_post): ?> <div class="sample"> <a href="<?php echo get_permalink($tax_post->ID); ?>"><?php echo esc_html($tax_post->post_title); ?></a> </div> <?php endforeach; ?> <?php endif; ?>
これで5件の記事タイトルと一覧とそれぞれのリンクは問題なく表示されました。
ここにサムネイルも一緒に掲載したいと思ったのですがどうもうまくいかず、
下記二つを試したのですがどちらも結果は同じで、各記事の画像を表示せずに、
一番新しい記事の画像だけを5つ表示してしまうのです。試したのは下記になります。
元々、記事内の一番最初の画像を取得してサムネイル画像表示するというソースを「functions.php」に書いています。
『記事内の一番最初の画像を取得してサムネイル画像表示』
function catch_that_image() { global $post, $posts; $first_img = ''; ob_start(); ob_end_clean(); $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches); $first_img = $matches [1] [0]; if(empty($first_img)){ //Defines a default image $first_img = "http://XXXXXXX.com/wp-content/themes/XXX/images/no_img.gif"; } return $first_img; }
これでサイドバーに表示させる最新記事一覧やカテゴリー一覧のサムネイルは問題なく出力できております。
このプログラムを使って表示させるのが、<p class="image"><a href="<?php echo get_permalink($tax_post->ID); ?>"><img src="<?php echo catch_that_image(); ?>"></a></p>
になります。これで他の一覧表示させるサムネイルは表示されました。
しかし今回の「taxonomy-testtax.php」を使ってカスタム投稿の記事ページで同じタームを持つ記事を一覧表示ではだめでした。ではアイキャッチに設定したものはどうかと思い、
<p class="image"><a href="<?php echo get_permalink($tax_post->ID); ?>"><?php the_post_thumbnail(); ?></a></p>
これで試してみたのですが結果は同じで、各記事の画像を表示せずに、
一番新しい記事の画像だけを5つ表示してしまいます。何がいけないのか見当つかなくなってしまい困っております。
お分かりになる方がいらっしゃればご教授いただければ幸いです。
よろしくお願いいたします。
- トピック「同ターム記事を一覧表示すると最新記事の画像しか表示されない」には新たに返信することはできません。