2014-07-19 91 views
2

我已經創建了一個名爲archive-event.php的'Event'custom post ape的存檔頁面。 我使用了標準archive.php模板中的內容,並按照發布順序列出了我的4個事件。WordPress的自定義帖子類型存檔頁面wp_query分頁不起作用

下一步是通過自定義字段event_date更改順序。我沒有這個問題。然後我想不顯示event_date已經過去的任何事件。下面的代碼完美地完成了這個。

現在我遇到的問題是我的分頁都搞砸了。我將默認閱讀設置設置爲每頁2篇文章,並且我有一個「加載更多」按鈕來顯示接下來的兩篇文章。

當我點擊「加載更多」時,它會複製已經顯示的兩個事件。任何想法,我錯了?

<?php 
$today = date("Ymd"); 
$args = array (
    'post_type'  => 'event', 
    'meta_key'  => 'event_date', 
    'orderby'  => 'meta_value', 
    'order'   => 'ASC', 
    'meta_query'  => array(
          array(
           'key' => 'event_date', 
           'value' => $today, 
           'type' => 'numeric', 
           'compare' => '>=', 
           ) 
          ), 
         ); 
$wp_query = new WP_Query($args); 

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

     <div>Content goes here</div> 


<?php } wp_reset_postdata(); ?> 
+0

你的加載更多按鈕是否使用ajax調用,或者你正在使用'next_posts_link()'或'posts_nav_link()'或其他方法嗎? –

+0

這是一個阿賈克斯調用。我禁用了插件並回到基本的下一個/後來的分頁,我仍然得到同樣的問題,所以假設它與插件無關。即使當我點擊以前的帖子,它打開了當前的2 ... –

回答

3

根據插件如何構建它可能會或可能不會被尊重內置到WordPress的pagination功能的UI。

嘗試迫使paged設置到你的查詢,像這樣:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
$args = array (
    'post_type'  => 'event', 
    'paged'   => $paged, // this will be set to what WordPress thinks is the proper page to start 
    'meta_key'  => 'event_date', 
    'orderby'  => 'meta_value', 
    'order'   => 'ASC', 
    'meta_query'  => array(
          array(
           'key' => 'event_date', 
           'value' => $today, 
           'type' => 'numeric', 
           'compare' => '>=', 
           ) 
          ), 
         ); 

接下來,如果這仍然不起作用,你可以測試的假設paged參數不是通過改變工作由於某種原因像這樣(再次,只是爲了測試)的默認值paged

$paged = 2; // just force it to start on the second page to see if that works 

如果上述測試工作,我會說,get_query_var()認爲你是在第一頁上。

+0

在我們的關係中,宣佈我對你的愛情還爲時過早嗎?第一個建議起作用。我知道,通過使用wp_query它忽略了其他默認值,但不知道它是什麼。 非常感謝你 –

+0

@ user2272355哈,可能有點早,是啊。與項目玩得開心! –

+0

出於某種原因,如果您在頭版上使用get_query_var('page')',則在自定義頁面上使用'get_query_var('paged')' – timhc22

相關問題