2016-04-08 20 views
1

WordPressのページネーションは、最初のwp_queryの後には機能しません。最初のwp_queryオブジェクトから返されたデータに対していくつかの操作を実行しています。 2番目のクエリの後、ページネーションは機能しません。WordPressのページネーションが正しく機能しない

<?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); 

?> 

私は間違った結果または全く改ページのいずれかを与えるクエリのいずれか、から「ページング」パラメータを削除してみました。例。このクエリは最初に28回の結果を返しますが、2回目のクエリ後には6回の結果しか返しません。そして、最初のクエリから 'ページング'パラメータを削除して2番目のクエリに追加すると、3ページを返すときに1ページだけが返されます。

+0

'wp_reset_postdataは()'すべてのカスタム '新しいWP_Query()'の後に使用する必要があります。 –

+0

私は2番目のクエリの前にそれを使用しましたが、まだ正しい結果を返していません。 –

+0

これは、ページングまたはカスタムアーカイブにある場合は、メインのクエリを使用するページングの原因となりますので、こちらをご覧ください[http] // stackoverflow。 com/a/36526482)。 – Jevuska

答えて

0

ループ後 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); 

enter image description here

参照のページネーションhttp://hiddenwhy.igexsolutions.com/blog/

+0

私はページ分割機能を持っており、他のケースでも機能します(このページでは、2番目のクエリを削除した場合も同様です)。 –

関連する問題