2014-09-26 25 views
1

我有一個WordPress網站,它有大量的文章,所有分類。我設置了一個新的主題,分頁(每頁15個帖子),因此用戶可以循環瀏覽每個頁面。一些類別分頁罰款。其他人錯過了最後一頁。最後的帖子在wordpress站點上的最後一個分類頁上沒有顯示

所以,如果一個類別有66個職位...前4個頁面顯示15個不同的職位。但是,當我點擊查看第5頁時,頁面顯示「找不到任何帖子」。最後6個帖子去了哪裏?他們仍然出現在我的政府中(已公佈和可見)。然而,其他類別的網頁沒有這個問題 - 例如,我有一個42職位的類別,它有3頁...最後一頁有12個最後的職位。

所以,分頁似乎工作正常(因爲它清楚地顯示了正確的頁數,對於帖子數量)。請看下面的代碼我有...這是我的模板index.php頁面(我沒有設置一個category.php頁面,因爲它列出非常類似於主頁)代碼。

<?php 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1; // Page 
$args = "posts_per_page=15&paged=".$paged; // Base query 

$category = get_queried_object(); // Get Cat info 
$thisCat = $category->term_id; // Get Cat ID (if exists) 
$tagID = get_queried_object()->term_id; // Get Tag ID (if exists) 
echo '<!-- paged: '.$paged.'-->'; 
echo '<!-- catID: '.$thisCat.'-->'; 
echo '<!-- tagID: '.$tagID.'-->'; 


if (is_home() || is_front_page()) { // HOMEPAGE 
    query_posts($args.'&orderby=rand'); 
    echo '<!-- args: '.$args.'&orderby=rand'.'-->'; 

} elseif (is_search()) { // SEARCH RESULTS ?> 
    <?php 
    $search_query = get_search_query(); 
    query_posts($args.'&s='.$search_query); 
    echo "<!-- args: ".$args.'&s='.$search_query."-->"; ?> 

    <h1>Search</h1>      
    <div class="content_labels"> 
     <div class="content_label">SEARCH RESULTS FOR: <?php echo $s; ?></div> 
    </div> 
    <div class="clear" style="margin:0 0 10px 0;"></div> 
    <div class="previouspage"> 
     <a href="javascript:history.back()"><< Previous Page</a> 
    </div><?php 

} elseif(is_category()) { // CATEGORY 
    query_posts($args.'&cat='.$thisCat); 
    echo '<!-- args: '.$args.'&cat='.$thisCat.'-->'; ?> 
    <div class="content_labels"> 
     <div class="content_label">Category:</div> 
    </div> 
    <h1><?php single_cat_title('', true); ?></h1>      
    <div class="clear" style="margin:0 0 10px 0;"></div> 
    <div class="previouspage"> 
     <a href="javascript:history.back()"><< Previous Page</a> 
    </div><?php 

} elseif(is_tag()) { // TAGS 
    echo '<!-- args: '.$args.'&tag_id='.$tagID.'-->'; 
    query_posts($args.'&tag_id='.$tagID); ?> 
    <div class="content_labels"> 
     <div class="content_label">Tag:</div> 
    </div> 
    <h1><?php single_tag_title(); ?> </h1>      
    <div class="clear" style="margin:0 0 10px 0;"></div> 
    <div class="previouspage"> 
     <a href="javascript:history.back()">Previous Page</a> 
    </div><?php 
} 

if (have_posts()) : 
    $i=1; 
    while (have_posts()) : the_post(); ?> 

    // PAGE CODE GOES HERE 

    endwhile; ?> 

    <?php base_pagination(); // PAGINATION CODE ?> 

<?php endif; ?>  

這裏是分頁代碼,從我的functions.php ...我不認爲這是問題...

function base_pagination() { 
    global $wp_query; 

    $big = 999999999; // This needs to be an unlikely integer 

    // For more options and info view the docs for paginate_links() 
    // http://codex.wordpress.org/Function_Reference/paginate_links 
    $paginate_links = paginate_links(array(
     'base' => str_replace($big, '%#%', get_pagenum_link($big)), 
     'current' => max(1, get_query_var('paged')), 
     'total' => $wp_query->max_num_pages, 
     'mid_size' => 5 
    )); 

    // Display the pagination if more than one page is found 
    if ($paginate_links) { 
     echo '<div class="pagination">'; 
     echo $paginate_links; 
     echo '</div><!--// end .pagination -->'; 
    } 
} 

有人能看到什麼錯誤?我一直在玩這個幾個小時,我似乎無法找到解決方案...

回答

1

所以,我做了一些挖掘,並嘗試了一些事情......我找不到任何錯誤上面的代碼。查詢是正確的(每個頁面顯示15個,每個類別歸檔頁面等),並且分頁正在工作......最後,每個默認的POSTS與我自己的posts_per_page = 15查詢衝突。不知道這場衝突發生在哪裏(這超出了我的技能) - 但我確實學會了如何阻止它。

下的設置 - 閱讀... 我剛換了「博客網頁顯示最多」到「15」

這不是一個理想的修復(因爲我不知道這個問題的開始,我不能調整自定義「posts_per_page」,如果它不同於15)...但我的網站現在如何運作我想要的。

相關問題