我在循环外有一个下一篇文章/上一篇帖子链接(它在footer.php
中),它不接受仅显示与您正在查看的当前帖子相同类别的帖子的命令。
代码为:
<section class="navigation">
<?php $posts = query_posts($query_string); if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="left">
<?php previous_post_link('%link', 'Prev', TRUE); ?>
</div><!-- left -->
<div class="right">
<?php next_post_link('%link', 'Next', TRUE); ?>
</div><!-- right -->
<?php endwhile; endif; ?>
</section><!-- navigation -->
大概是因为上面的循环是自包含的,不知道single.php
的当前类别是什么?
如何让上面的代码在主循环之外仅显示同一类别中的帖子?
是的,您需要知道当前帖子的当前类别,为此编写以下代码:
//Get the active post's category
$category = get_the_category();
$cat = $category[0]->cat_ID;
//Run Loop on Posts of Specific Category
<?php query_posts('cat='.$cat.''); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="left">
<?php previous_post_link('%link', 'Prev', TRUE); ?>
</div><!-- left -->
<div class="right">
<?php next_post_link('%link', 'Next', TRUE); ?>
</div><!-- right -->
<?php endwhile; endif; ?>