2013-05-18 19 views
1

在我的自定義主題上的自定義頁面模板上,我有以下查詢。當我做這種方式的分頁工作:當不保存初始查詢對象時Wordpress分頁不起作用

$myqueryname = $wp_query; 
$mypost_args = array('post_type' => 'friends', 'orderby' => 'title', 'order' => 'ASC', 'posts_per_page' => 4, 'paged' => $paged); 
$wp_query = new WP_Query($mypost_args); 
while ($wp_query->have_posts()) : $wp_query->the_post(); 

    Some html..... 

endwhile; 

previous_posts_link('Prev'); 
next_posts_link('Next'); 

但是,當我使用這種方式的分頁不工作:

$mypost_args = array('post_type' => 'friends', 'orderby' => 'title', 'order' => 'ASC'); 
$loop = new WP_Query($mypost_args); 
while ($loop->have_posts()) : $loop->the_post(); 
     Some html..... 

endwhile; 

previous_posts_link('Prev'); 
next_posts_link('Next'); 
wp_reset_query(); 

我想知道爲什麼會出現這種情況?有什麼不同 ?對不起,如果我的問題含糊不清,但這會幫助我更好地瞭解WordPress的工作方式,而不僅僅是從論壇複製粘貼代碼。

謝謝先進。

回答

1

如果你看看get_next_posts_link的code(功能next_posts_link調用)它具有以下代碼:

global $paged, $wp_query; 

if (!$max_page) 
    $max_page = $wp_query->max_num_pages; 
... 

這是next_posts_link

<?php next_posts_link($label , $max_pages); ?> 

使用它看起來對我當您使用自定義查詢時,您需要指定$max_pages以使分頁工作。

嘗試修改您的分頁代碼如下:

previous_posts_link('Prev', $loop->max_num_pages); 
next_posts_link('Next', $loop->max_num_pages); 
+0

生病答案!!!! – Laxmana

+0

忘記提及它工作:) – Laxmana

+0

謝謝。這很好理解:) – user850010