2011-01-29 104 views
1

我的代碼是wordpress分頁不工作?

我每一次我的循環

$arrangement = get_cat_ID('arrangement'); 
$antiquarianism = get_cat_ID('antiquarianism'); 

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

print_r($paged); 
$query = query_posts(array(

     'page' => intval($paged), 
'category__not_in' => array($arrangement, $antiquarianism))); 

之前已經寫了分頁這段代碼的打印1.

回答

1

我以前曾經有過類似的問題。不幸的是,它可能是一些事情。

一種可能性是頁面查詢與Wordpress'循環'相關的處理。我只是通過文檔閱讀query_posts和看準了這一點:

保留原來的查詢(分頁等) 默認運行query_posts將完全覆蓋當前頁面上的所有現有查詢的變量。分頁,分類日期等將會丟失,只有你傳遞給query_posts的變量會被使用。

如果要保留您可以將原始查詢數組合併到您的參數數組原始查詢:

global $wp_query; 
query_posts(
    array_merge(
     array('cat' => 1), 
     $wp_query->query 
    ) 
); 

http://codex.wordpress.org/Function_Reference/query_posts

我不知道這是否會影響你,但它是值得拍攝。

編輯:你也可以嘗試在'循環'關閉後(即在主結束後)運行一個單獨的get_post循環。這解決了過去

<?php 
// custom pagination improvements 
    //http://codex.wordpress.org/Template_Tags/get_posts 
    $lastposts = get_posts('numberposts=50&order=DESC&orderby=ID'); 
    setup_postdata($lastposts); 
    $valid_posts = array(); 
    $lastposts = (array) $lastposts; 
    foreach ($lastposts as $post) { 
     $post = (array) $post; 
     // Sort through arrays here - get the next valid post 
     switch (true) { 
      case ($post['post_status'] == 'publish' && $post['ID'] < $curr_pid[0]): 
       array_push($valid_posts, $post); 
       break; 
      default: 
       break; 
     } 
    } 
    $nextArray = $valid_posts[0]; 
?> 
<ul class="pagination"> 
    <li class="next"><a href="<?php echo(get_permalink($nextArray['ID'])); ?>"><?php echo ($nextArray['post_title']); ?></a></li> 
</ul> 

對我的問題這是一些代碼,我寫的頭版所以它只是顯示「下一步」,然後根據我的過濾器(而不是什麼鏈接到下一個職位WordPress的想法應該下一步)。你當然可以使用foreach循環回顯多個數字鏈接。這會使事情變得複雜一些,但它可以非常精確地控制分頁中發生的事情。

這對你有幫助嗎?

+1

yaa我試着與原來的查詢相同的合併沒有給予soln反而它的打印所有帖子 – rajeshrt 2011-01-29 14:24:40

2

你試過了$paged的var_dump嗎?或者重置get_query_var('page')這裏建議:worpress support