Wordpress分页仅显示2页

时间:2017-02-23 09:52:40

标签: php wordpress pagination

我已经设置了一个基本主页,每页显示3篇文章,并通过分页来浏览这些页面。目前它只显示第1页和第1页的分页。 2,不多,即使我有12篇文章,结果4页。我不太确定我在哪里出错:

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

    $args = array(
        'post_type'         => 'post',
        'post_status'       => 'publish',
        'paged'             => $paged,
        'posts_per_page'    => 2
    );
    $the_query = new WP_Query( $args );
    while ($the_query -> have_posts()) : $the_query -> the_post();

        include(locate_template('content-post.php' ));

    endwhile;
?>

<?php the_posts_pagination( array('mid_size' => 3) ); ?>

Dummy posts

4 个答案:

答案 0 :(得分:1)

the_posts_pagination 使用默认WP查询,因此无法在此处运行。你可以试试下面的代码:

<?php
    if ( get_query_var('paged') ) { $paged = get_query_var('paged'); } else if ( get_query_var('page') ) {$paged = get_query_var('page'); } else {$paged = 1; }

    $args = array(
        'post_type'         => 'post',
        'post_status'       => 'publish',
        'paged'             => $paged,
        'posts_per_page'    => 2
    );
    $temp = $wp_query;
    $wp_query= null;
    $wp_query = new WP_Query($args);
    while ($wp_query -> have_posts()) : $wp_query -> the_post();
        include(locate_template('content-post.php' ));
    endwhile;


    the_posts_pagination( array('mid_size' => 3) );

    $wp_query = null;
    $wp_query = $temp;
    wp_reset_query();
?>

代码在完美的工作中经过测试。

答案 1 :(得分:0)

使用此插件Click here

并使用此短代码进行分页<?php wp_pagenavi(); ?>

我使用完全跟随循环来实现我的项目及其工作。

<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args= array(
 'cat' => '',
 'orderby'=> 'date',
 'order'=> 'DESC',
 'paged' => $paged ,
 'posts_per_page' => 3
);
query_posts($args); 
if (have_posts()) :
  while (have_posts()):
    the_post();
  endwhile;
endif;
?>

请试一试。希望它也适合你。

如果您要在主页上显示帖子,则需要替换

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

<?php

if ( get_query_var('paged') ) 
    { 
        $paged = get_query_var('paged'); 
    } 
else if ( get_query_var('page') ) 
    {
        $paged = get_query_var('page'); 
    }
    else 
    {
        $paged = 1; 
    }

答案 2 :(得分:0)

问题是$ paged =(get_query_var('paged'))吗? get_query_var('paged'):1;检索主查询对象的数据,但不检索自定义对象的数据。 我在这里https://wordpress.stackexchange.com/questions/120407/how-to-fix-pagination-for-custom-loops

找到了解决方案

答案 3 :(得分:0)

您的代码对我来说还不错。我遇到了同样的问题,我通过将posts_per_page与管理控制台中Blog pages show at most中的Settings->Reading字段进行匹配来解决了该问题

示例:

"posts_per_page" => 6,然后Blog pages show at most也应为6

我希望这会有所帮助。