WordPress分页不起作用-始终显示首页内容

时间:2013-07-10 作者:Johnny

我正在一个网站上工作,在那里我有一个博客,但我也有一个自定义的帖子类型,允许我投一些视频。

我想使用分页,这样,如果有超过9个视频显示,然后分页发生。

第一部分工作。视频确实被限制在每页9个,分页正确显示在底部。

然而,当我点击第二页的链接时,即使URL发生变化,也会显示第一页的视频。

对于我的“普通”博客帖子,分页工作完全符合预期。

这是我用于自定义帖子类型的当前代码:

<?php if ( have_posts() ) : ?>
<?php $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1; query_posts(\'post_type=videos&posts_per_page=9&paged=$paged\'); ?>

    <?php /* Start the Loop */ ?>
    <?php while ( have_posts() ) : the_post(); ?>
任何帮助都将不胜感激。

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

为什么当前代码失败,因为string 传递给的参数的数目query_posts 封装在single quotes 防止变量(以及特殊字符的转义序列$) 待扩展。

query_posts("post_type=videos&posts_per_page=9&paged=$paged"); 会解决这个问题。

query_posts(\'post_type=videos&posts_per_page=9&paged=\'.$paged); 也会

最后,传递一个混合参数数组而不是URL查询样式的字符串也可以。

尽管如此,you should not use query_posts at all:

如何操作根据您的评论,您试图使用get_posts.
这确实是一个非常有用的函数,但如果您想使用WordPress-Loop 之后get_posts 返回post对象的数组WP_Query 对象的posts 所有物但是只有一个属性,没有其他的好东西和方法WP_Query 提供。

因此,要使用上面的代码段,请按照以下步骤进行操作:

<?php
    $paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1; 
    $args = array(
        \'post_type\' => \'videos\',
        \'posts_per_page\' => 9,
        \'paged\' => $paged
    );
    $your_query = new WP_Query( $args );

    if ( $your_query->have_posts() ) {
        /* The Loop */
        while ( $your_query->have_posts() ) {
            $your_query->the_post();
            // do something
        }
    } else {
        echo \'Sorry, no posts found.\';
    }
?>

结束

相关推荐

WP_Query breaks pagination

我已经研究这个问题一周了。我搜索了无数没有回答这个问题的帖子。我的wp\\u查询似乎破坏了分页。我已经在这里浏览了很多关于wp\\U查询和分页的帖子,但仍然毫无乐趣。据我所知,它的设置是正确的。我有一个实例,它将在一个页面中显示所有帖子,而在另一个页面中,它会重复每个页面上的内容。请参阅下面的代码,以获取带注释的精简版本。有人知道问题出在哪里吗?<?php /* Let\'s asume that this is the search query in the