single.php内に同じタクソノミの同じタームの記事一覧を表示
-
こんにちは。
single.phpに記事の the_content() 以外にも記事を同じタームに所属しているほかの記事一覧も出したいのですが、うまくいきませんでした。
長い説明になりますが、どうかご教授いただければ幸いです。
よろしくお願いいたします。以下の2つのページを作っています。
(1) taxonomy-hoge.php:
タームが「hoge1」に設定されている記事一覧(2) single-hoge.php:
タームが「hoge」に設定されている記事の詳細 ※(1)を押してから表示されるページ
ただし、(2)の左側にはメニューとして(1)を表示したいです。■イメージ
custom taxonomy: hoge
├ hoge1 ————- 記事A, 記事B
└ hoge2 ————- 記事C, 記事D■taxonomy-hoge.phpの形:hoge1に所属している記事のタイトル一覧
<ul> <li><a href="記事詳細へ">記事A</a></li> <li><a href="記事詳細へ">記事B</a></li> </ul>
■single-hoge.phpの形(記事Aのリンクを押した場合)
<!-- 左側に一覧 --> <div> <ul> <li>記事A</li> <li>記事B</li> </ul> </div> <!-- 右側に詳細 --> <p>記事Aの詳細 the_content() 内容</p>
■taxonomy-hoge.php
<ul> <?php if(have_posts() ) : while(have_posts()) : the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; ?> <?php endif; ?> </ul> <p><?php previous_posts_link('PREV'); ?></p> <p><?php next_posts_link('NEXT'); ?></p>
ページ送りも問題ないです。
しかし、single.phpになると、うまくいきませんでした。
<article> <?php if(have_posts() ): while(have_posts()) : the_post(); ?> <p><?php esc_html(the_content()); ?> <?php endwhile; endif; ?> </article> <?php /* single.phpの中だと、記事一覧が取れないと思い、query_postsを使いました */ $args = array( 'post_type' => 'my_post', 'tax_query' => array( array( 'taxonomy' => 'hoge', 'field' => 'slug', 'terms' => "hoge1", ) ) ); $loop = new WP_Query($args); ?> <ul> <?php while($loop->have_posts()) : $loop->the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> <?php endwhile; ?> <p><?php previous_posts_link('PREV'); ?></p> <p><?php next_posts_link('NEXT'); ?></p> <?php wp_reset_query(); ?>
そうすると、ページ送りがうまくいきませんでした(表示されません)。
★single.phpの中で、記事リスト一覧を出すには query_postを使ったのですが、適切でしょうか。
★taxonomy-hoge.phpの場合は、functionsに以下を書きました。
function my_pre($query){ if($query->is_tax("hoge")){ $query->set('post_type', array('my_post')); $query->set('post_status', 'publish'); $query->set('posts_per_page', '5'); $query->set('order_by', 'date'); $query->set('order', 'DESC'); } add_filter('pre_get_posts','my_pre');
posts_per_pageを設定していたのですが、これがどうも single.phpにも影響をしています。
言葉で説明するのが難しくて大変読みづらい文章となっていて申し訳ないですが、
躓いているので、この辺詳しい方がいればアドバイスいただければ助かります。
不足している情報があれば、教えていただければ補足します。よろしくお願いします。
- トピック「single.php内に同じタクソノミの同じタームの記事一覧を表示」には新たに返信することはできません。