2015-01-25 3 views
0

나는 사용자 정의 permalinks/% category %/% postname %/ 을 사용합니다. 카테고리 페이지 (category.php)에서 페이지 매기기를 사용합니다. 예를 들어/shops/paged/2와 get 404 오류category.php의 페이지 매김이 wordpress에서 작동하지 않습니다.

추신 나는에 가면/상점// 1이 P.P.S 사용 사용자 정의 쿼리 WP_Query 및 wp_pagenavi()

global $paged; 
if (get_query_var('paged')) 
    $my_page = get_query_var('paged'); 
else { 
    if(get_query_var('page')) 
     $my_page = get_query_var('page'); 
    else 
     $my_page = 1; 
    set_query_var('paged', $my_page); 
    $paged = $my_page; 
} 
$args = array(array('posts_per_page' => 2, 'paged'   => $paged, 'post_type' => 'post', 'category_name' => 'my_category_nicename')); 

$the_query = new WP_Query($args); 

... 

while ($the_query->have_posts()): 

... 

내가 그것을 어떻게 해결할 수를 작동 페이징?

대단히 감사합니다!

답변

6

새 루프를 제거하는 대신 카테고리 페이지에서 기본 루프를 수정해야합니다. 현재 가지고있는 카테고리의 메인 루프에는 페이지 2가 없으므로 수정 한 category.php 파일이 표시되지 않고 404 템플릿이로드됩니다. 예에서

나는 우리가 카테고리 페이지에 있다면 확인하고 2.

function wpse_modify_category_query($query) { 
    if (! is_admin() && $query->is_main_query()) { 
     if ($query->is_category()) { 
      $query->set('posts_per_page', 2); 
     } 
    } 
} 
add_action('pre_get_posts', 'wpse_modify_category_query'); 
+0

에 페이지 당 게시물의 수를 변경하는 pre_get_posts를 사용하여 아래는 답변을 주셔서 감사합니다. 'posts_per_page'=> 2를 제거하고 functions.php에 함수를 추가하고 (! is_admin() && $ query-> is_main_query()) {... 또한 두 번째 페이지에서 404 오류가 발생하는 경우 ( –

+0

If –

+0

'posts_per_page'=> 2, 'posts_per_page'=> 0, 'posts_per_page'=> -1로 시도했지만 작동하지 않았습니다. 나에게 줄 수 있습니까? 이 함수에 대한 올바른 WP 쿼리의 예는 무엇입니까? –