显示不起作用的单一类别的帖子

时间:2014-10-18 作者:CodeSmith

我有一个简单的循环,输出帖子的内容,然后在底部添加一些导航链接。Wordpress设置为一次仅显示5篇文章。

<?php while(have_posts()) : the_post(); ?>
    <div class="post">
        <?php the_content(); ?>
    </div>
<?php endwhile; ?>
<div class="navigation"><?php posts_nav_link(" - ", "&laquo; Newer Posts", "Older Posts &raquo;"); ?></div>
<?php wp_reset_postdata(); ?>
我的客户要求我对此进行修改,并从列表中排除一个类别。我尝试添加

<?php query_posts(\'cat=4\'); ?>
在循环之前。这确实过滤掉了所需的帖子,但它却打乱了导航。现在,当我按下页面底部的“旧帖子”链接时,我不会收到6-10篇帖子。相反,帖子1-5只是重复。然而,url确实更改为/news/page/2. 如果我再次按下“旧帖子”链接,我仍然会收到帖子1-5,url会更改为/news/page/3. 我总共有22篇帖子,所以我可以重复这个过程4次。Wordpress在点击4次后删除底部的“旧帖子”链接,这样它就可以了解我总共有多少篇帖子(并且每次都会相应地调整url)。它只是不能输出正确的帖子。

我还尝试创建一个全新的查询

<?php $query = new WP_Query(  \'cat=4\'); ?>
<?php while($query->have_posts()) : $query->the_post(); ?>
    <div class="post">
        <?php the_content(); ?>
    </div>
<?php endwhile; ?>
<div class="navigation"><?php posts_nav_link(" - ", "&laquo; Newer Posts", "Older Posts &raquo;"); ?></div>
<?php wp_reset_postdata(); ?>
那也没用。有人能给我指出正确的方向吗?

1 个回复
最合适的回答,由SO网友:WebDev 整理而成

请看一看名为Preserving Existing Query Parameters 在…上http://codex.wordpress.org/Function_Reference/query_posts

尝试合并现有查询参数;它们可能会被覆盖。而不是:

<?php query_posts(\'cat=4\'); ?>
试试看

global $query_string;
query_posts( $query_string . \'&cat=4\' );

结束

相关推荐

Infinite blog loop

我不明白为什么我会收到一个无限的博客帖子。当我注释内容中的循环代码时。php,它不再循环。我正在尝试根据post格式发布项目,但到目前为止失败了。如果我需要提供更多信息,请告诉我!我很感激。所容纳之物php:<?php /** * The default template for displaying content. Used for both single and index/archive/search. * * @subpackage Foundatio