2012-10-11 4 views
1

는 내가 최신 워드 프레스 버전 3.4.2에서 작동하도록 매김을 얻이 수없는 것 문제로 실행했습니다. 나는 이것을 다소 혼란스럽게 만들기 위해 많은 WordPress 사이트를 개발했다. 나는 사용자 정의 게시 유형의 뉴스를 가지고 있는데, 페이지 당 8 개의 게시물을 표시하고 페이지 URL은 '/ news'가됩니다. 이 페이지는 하단에 올바른 페이지 매김이 올바르게 표시됩니다 (WP-pagenavi 사용). 두 번째 페이지 (/ news/page/2)를 클릭하면 404 페이지가 나타납니다. 이 문제를 해결하는 데 도움을 주시면 감사하겠습니다.워드 프레스 (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

깨갱 거리는 소리가 난 여전히 작동하지, 그것을 시도했습니다

는 cutom 테마에 사용되는 것을 예를 들면이다. 답장을 보내 주셔서 감사합니다 – dciso

관련 문제