2017-04-02 94 views
1

爲什麼http://localhost/wp/?paged=2和更舊版本無法在wp_query中工作?爲什麼頁面2不能在wp查詢中工作

我有超過15個帖子的「自定義帖子類型」的電影和系列。 它在前端分成兩頁,但當我按下較舊的帖子時,頁面仍然是第一頁。

這裏是我的index.php循環代碼:

<?php 
$paged = (get_query_var('page')) ? get_query_var('page') : 1; 
$query_args = array(
    'post_type' => array('post','series','movie'), 
    'posts_per_page' => 10, 
    'paged' => $paged 
); 
$the_query = new WP_Query($query_args); 
?> 

<?php if ($the_query->have_posts()) : while ($the_query->have_posts()) : $the_query->the_post(); ?> 

    <h1><?php the_title();?></h1> 

<?php endwhile; ?> 
<div class="col-md-12"> 
    <?php if ($the_query->max_num_pages > 1) { // check if the max number of pages is greater than 1 ?> 
     <nav class="prev-next-posts"> 
      <div class="prev-posts-link"> 
       <?php echo get_next_posts_link('Older Entries', $the_query->max_num_pages); // display older posts link ?> 
      </div> 
      <div class="next-posts-link"> 
       <?php echo get_previous_posts_link('Newer Entries'); // display newer posts link ?> 
      </div> 
     </nav> 
    <?php } ?> 
</div> 
<?php wp_reset_postdata(); ?> 
<?php else: ?> 
    <article> 
     <h1>Sorry...</h1> 
     <p><?php _e('Sorry, no posts matched your criteria.'); ?></p> 
    </article> 
<?php endif; ?> 

回答

0

我已經找到了解決辦法:

add_filter('pre_get_posts', 'my_get_posts'); 

    function my_get_posts($query) { 

     if ($query->is_main_query() && is_home() ) { 
      $query->set('post_type', array('post', 'movie', 'series')); 
     } 
     if ($query->is_main_query() && is_category() ) { 
      $query->set('post_type', array('post', 'movie', 'series')); 
     } 
     if ($query->is_main_query() && is_search() ) { 
      $query->set('post_type', array('post', 'movie', 'series')); 
     } 
     if ($query->is_main_query() && is_tag() ) { 
      $query->set('post_type', array('post', 'movie', 'series')); 
     } 
     return $query; 
    } 

這個代碼不停止出現導航菜單

+0

只要我的回答不是正確的答案,你可能需要確認你的答案是正確的,所以在將來如果有任何訪客來到你的問題,他可以很容易地得到解決方案 – hassan

相關問題