我有以下查询,该查询旨在显示分类中的术语列表,并在每个术语下,分配给该术语的帖子列表。
这会显示在我的single.php帖子页面左侧的侧边栏中。在页面的主要区域,显示实际的单个帖子。
但是,它不是显示当前的单个帖子,而是仅显示最近一个帖子的TITLE。
这是我的问题:
$terms = get_terms('benefit-cats');
echo "<ul>";
foreach ($terms as $term) {
$wpq = array ('taxonomy'=>'benefit-cats','term'=>$term->slug);
$query = new WP_Query ($wpq);
echo "<li class=\"list-item\">".$term->name.""; //<a href=\"".get_term_link($term->slug, 'benefit-cats')."\"></a>//
echo "<ul class=\"children\">";
$posts = $query->posts;
foreach ($posts as $post) {
echo "<li><a href=\"".get_permalink()."\">".$post->post_title."</a></li>";
}
echo "</ul></li>";
}
echo "</ul>";
我试过在代码中添加重置查询,但无济于事。我已经确定这是导致问题的特定部分:
$posts = $query->posts;
foreach ($posts as $post) {
echo "<li><a href=\"".get_permalink()."\">".$post->post_title."</a></li>";
}
我到底错在了什么?我一直在努力拍摄30-40分钟而没有任何成功。
感谢我对错误的解释。
答案 0 :(得分:2)
尝试使用
<?php
if ($query->have_posts() ) : while ($query->have_posts() ) : $query->the_post(); ?>
echo "<li><a href=\"".get_permalink()."\">".the_title()."</a></li>";
<?php endwhile; endif; wp_reset_query(); ?>
取代
$posts = $query->posts;
foreach ($posts as $post) {
echo "<li><a href=\"".get_permalink()."\">".$post->post_title."</a></li>";
}
希望这对您有用
答案 1 :(得分:0)