WordPress posts_per_page 不工作

Wordpress posts_per_page not working

所以,我尝试了整个网络上的所有 "add_filter" 方法来解决这个问题,但它不起作用!它总是显示超过 1 post。我的代码有什么问题?最新的 WP-Version 4.1.1 并且没有安装插件。

代码如下:

<?php

    $sticky = get_option('sticky_posts');

    if ( !empty($sticky) ) {

    $args = array(
        'post__in' => $sticky,
        'orderby' => 'date',
        'order' => 'ASC',
        'posts_per_page' => 1
    );

    $slider_query = new WP_Query( $args );

    while ( $slider_query->have_posts() ) {             
        $slider_query->the_post();
    ?>

    <div>
       <!-- here we go -->
    </div>

<?php

        }
    }

?>

Wordpress 与 posts_per_page 和 wp_query 不兼容。 要修复它,你必须使用 get_query_var,像这样:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

然后在你的 wp_query() 中你做:

$args = array(
    'post__in' => $sticky,
    'orderby' => 'date',
    'order' => 'ASC',
    'posts_per_page' => 1,
    'paged' => $paged
);

好的,我知道了。缺少此参数。对于置顶帖子,Wordpress 默认忽略 "posts_per_page"。

$args = array(
    'post__in' => $sticky,
    'orderby' => 'date',
    'order' => 'ASC',
    'posts_per_page' => 1,
    'ignore_sticky_posts' => 1
);