2012-10-11 99 views
1

我遇到了一個問題,我似乎無法獲得分頁工作在最新的wordpress版本3.4.2。我開發了很多wordpress網站,所以這很容易混淆。我有一個自定義帖子類型的新聞,我希望每頁顯示8個帖子,頁面網址將是'/ news'。此頁面正確顯示,並在底部顯示正確的分頁(使用WP-pagenavi)。當我點擊第二頁(/ news/page/2)時,我會看到我的404頁面。我真的很感謝任何幫助解決這個問題。WordPress的(3.4.2)分頁問題 - 自定義帖子類型

<?php 
/* 
Template Name: News 
*/ 
?> 

<?php get_header(); ?> 

<div class="container_12"> 

    <div class="grid_12 box">    

     <?php 
     $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 
     $args = array('post_type' => 'news', 'posts_per_page' => 8, 'paged' => $paged);  
     $loop = new WP_Query($args); 
     while ($loop->have_posts()) : $loop->the_post(); 
     ?> 

     <div class="news"> 
       <h4><?php the_title() ?></h4></a> 
       <span><?php the_time('F jS, Y'); ?></span> 
       <p><?php limit_excerpt("30"); ?></p> 
     </div> 

     <?php endwhile; ?> 


     <div id="pagination"> 
      <?php if(function_exists('wp_pagenavi')) { 
       wp_pagenavi(array(
        'query' =>$loop 
       )); 
      } 
      ?> 
     </div> 

    </div> 

</div><!-- .container_12 --> 

<?php get_footer(); ?> 

[更新 - 解決方案]

所以我編寫了一個解決方案。將這個在functions.php的

//Set for cpts 
function cpt_init($cpt) 
{ 
add_rewrite_rule(
    "{$cpt}/page/([^/]+)/?", 
    "index.php?pagename={$cpt}&pag=$matches[1]", 
    'top'); 
} 

//Only Add Once 
add_filter('query_vars', 'cpt_query_vars'); 
function cpt_query_vars($query_vars) 
{ 
$query_vars[] = 'pag'; 
return $query_vars; 
} 

//Add for each type 
add_action('init', 'cpt_init', 'news'); 

而且在循環使用get_query_var('pag'),而不是get_query_var('page')

回答

1

你嘗試使用全局變量$分頁,而不是歸咎於它自己的價值?

這是例如什麼是一對自定義主題中使用:

<?php 
    global $paged; 
    $the_query = new WP_Query(); 
    $the_query->query('post_type=post&posts_per_page=14&post_status=publish&paged='.$paged); 
?> 
+0

偉業我已經試過了,仍然沒有工作。感謝您的回覆 – dciso

相關問題