2014-04-09 72 views
0

我有一個相關的自定義分類(支持)和自定義帖子類型(問題)。WP自定義分類分頁

在我的分類法support.php模板文件,我用下面的查詢:

<?php 

$current_category = get_term_by('id', get_queried_object()->term_id, 'support'); 

$questions = new WP_Query(array(
    'post_type' => array('question'), 
    'post_status' => 'publish', 
    'posts_per_page' => 2, 
    'paged' => ((get_query_var('paged')) ? get_query_var('paged') : 1), 
    'nopaging' => false, 
    'tax_query' => array(
     array(
      'taxonomy' => 'support', 
      'terms' => array($current_category->term_id) 
     ) 
    ), 
    'orderby' => 'menu_order', 
    'order' => 'ASC' 
)); 

?> 

,循環

<?php if ($questions->have_posts()): ?> 

    <ul> 
     <?php while ($questions->have_posts()) : $questions->the_post(); ?> 
      <li> 
       <h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3> 
       <?php the_excerpt(); ?> 
      </li> 
     <?php endwhile; ?> 
     <?php wp_reset_postdata(); ?> 
    </ul> 

    <div class="clearfix"> 
     <div class="pull-left"> 
      <?php previous_posts_link('&larr; ' . __('Previous', 'my-theme'), $questions->max_num_pages); ?> 
     </div> 
     <div class="pull-right"> 
      <?php next_posts_link(__('Next', 'my-theme') . ' &rarr;', $questions->max_num_pages); ?> 
     </div> 
    </div> 

<?php endif; ?> 

正如你可以看到我定義每頁2個職位。

當我訪問的頁面,它顯示了我2個職位,然後我去第2頁,它仍然有效,但是當我去第3頁或向上,這表明404

任何想法?

我使用的WordPress 3.8.2沒有安裝插件。

感謝

回答

0

我很高興能找到您的文章,因爲我是爭取完全相同的問題(不太高興地發現沒有答案尚未;))。

無論如何,我終於發現了一些有趣的東西在這裏:https://wordpress.org/support/topic/set-number-of-posts-for-custom-taxonomy

這使得招我。

我想你已經進入全局posts_per_page選項(在管理員中設置)的值大於分類標準的值,從而導致系統癱瘓。

好吧,當你想到它時,沒有那麼多:在其生命週期中,擁有全局posts_per_page選項,請求不會驗證「分頁」url,因此甚至不會加載您的taxonomy-support.php模板文件,你告訴它posts_per_page應該是不同的。

然後你必須在初始化過程中提前告訴它。 'pre_get_posts'行動就是其中之一。

希望它可以幫助別人!