【问题标题】:WordPress pagination not working correctlyWordPress分页无法正常工作
【发布时间】:2016-07-29 14:17:32
【问题描述】:

第一次 wp_query 后 WordPress 分页不起作用。我正在对第一个 wp_query 对象返回的数据执行一些操作。但是在第二次查询之后,分页不起作用。

<?php

    $prop_no      =   intval( get_option('wp_estate_prop_no', '') );
    $paged        = (get_query_var('paged')) ? get_query_var('paged') : 1;

    $args = array(
            'post_type'        =>  'estate_property',
            'author'           =>  $current_user->ID,
            'paged'             => $paged,
            'posts_per_page'    => $prop_no,
            'post_status'      =>  array( 'any' ),              
        );

    $prop_selection = new WP_Query($args);

    //some code

    $args = array(
            'post_type'        =>  'estate_property',
            'author'           =>  $current_user->ID,
            'paged'             => $paged,
            'posts_per_page'    => $prop_no,
            'post__in'         =>  $sorted_posts,
            'orderby'          => 'post__in'

        );


    $prop_selection = new WP_Query($args);

?>

我尝试从其中一个查询中删除 'paged' 参数,结果要么错误,要么没有分页。前任。此查询第一次返回 28 个结果,但在第二次查询后仅返回 6 个结果。如果我从第一个查询中删除 'paged' 参数并将其添加到第二个查询中,那么当它应该返回 3 页时只返回一个页面。

【问题讨论】:

  • wp_reset_postdata() 应该在每个自定义 new WP_Query() 之后使用。
  • 我在第二次查询之前使用过,但仍然没有返回正确的结果
  • 发生分页使用主查询,如果您在自定义页面或自定义存档中,请查看我的答案here

标签: php wordpress pagination


【解决方案1】:

function.php中创建函数

function sofg_pagination($max_num_pages,$paged,$page_id){
    if($max_num_pages > 1){
    echo '<div class="post-wrap pgns">';
    echo '<ul class="pagination_list">';
    echo '<li><a href="'.get_permalink($page_id).'page/1">First</a></li>';
    for($i=1; $i<= $max_num_pages; $i++){
        if($paged==$i){ 
            echo '<li class="active"><a href="'.get_permalink($page_id).'page/'.$i.'">'.$i.'</a></li>';
        }
        else{ echo '<li><a href="'.get_permalink($page_id).'page/'.$i.'">'.$i.'</a></li>'; }
    }
    echo '<li><a href="'.get_permalink($page_id).'page/'.$max_num_pages.'">Last</a></li>';
    echo '</ul></div>';
    }
}  

为您的listing page获取分页

定义前循环

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

在循环后使用

$max_num_pages_1 = $max_num_pages->max_num_pages;
sofg_pagination($max_num_pages_1,$paged,$page_id);

见分页http://hiddenwhy.igexsolutions.com/blog/

【讨论】:

  • 我有分页功能,它适用于其他情况(如果我删除第二个查询,也可以在此页面上)。
猜你喜欢
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
  • 2021-01-24
  • 2013-12-14
  • 2014-09-21
  • 2013-08-22
  • 2012-09-25
  • 2017-11-27
相关资源
最近更新 更多