2012-02-02 5 views
1

등록되어 작동하는 WordPress (Magic Fields에서 생성 된 "ns_news_article")의 사용자 정의 게시 유형을 사용하고 있습니다. 이렇게하면 도메인 뒤에 "카테고리/뉴스"를 추가하는 URL이 다시 작성됩니다 (예 : www.mydomain.com/category/news/custom-post-1). 거기에 "가짜 디렉토리"가 있어야합니다.WP 사용자 정의 게시 유형 페이지 매김/404 오류

은 내가 functions.php이 있습니다

add_rewrite_rule("[ns_news_article]" . '$', "index.php?pagename=[ns_news_article]", "top"); 
add_rewrite_rule("[ns_news_article]" . '/page/([0-9])*/?', "index.php?pagename=[ns_news_article]" . '&paged=$matches[1]', "top"); 
global $wp_rewrite; 
$wp_rewrite->flush_rules(); 

제 2 라인은 목록의 여러 페이지를 볼 때 페이지 매김 404 문제를 돌봐 있지만 하나의 게시물을 보려고 할 때 다음 404 오류를 제공합니다. 이걸 없애면 게시물을 볼 수는 있지만 페이지 매김이 작동하지 않습니다.

나는이 문제를 해결할 수 또는 다른 방법으로 일을해야 하는가?

답변

0

최근에 사용자 지정 게시물 유형 페이지 매김을 수행 했으므로이 방법을 사용했습니다. 사용자 정의 게시물 유형을 "customp"라고합시다.

  1. page-customp.php이라는 테마로 파일을 만듭니다. 그런 다음 "Customp"제목이있는 빈 페이지를 게시하십시오. 이제 www.yourdomain.com/customp를 방문하면 page-customp.php을 템플릿으로 사용하는 페이지가 표시됩니다. 이제이 페이지를 사용하여 맞춤 게시물과 페이지 매김을 보여줍니다.

  2. 장소 your page-customp.php 파일이 코드 : 당신의 functions.php 파일 장소에서

    $paged = 1; 
    
    $postsPerPage = 5; 
    
    if (get_query_var('paged')) $paged = get_query_var('paged'); 
    
    if (get_query_var('page')) $paged = get_query_var('page'); 
    
    query_posts('&post_type=customp&paged=' . $paged . '&posts_per_page='.$postsPerPage); 
    
    while (have_posts()) : the_post(); 
    
        the_title(); 
        echo get_the_excerpt(); 
    
    endwhile; 
    
    customp_paginate(); 
    
  3. 이 :

    function customp_paginate() { 
    
        global $wp_query, $wp_rewrite; 
    
        $wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1; 
    
        $pagination = array(
        'base' => @add_query_arg('page', '%#%'), 
        'format' => '', 
        'total' => $wp_query->max_num_pages, 
        'current' => $current, 
        'show_all' => true, 
        'type' => 'list', 
        'prev_text' => '«', 
        'next_text' => '»', 
    ); 
    
        if ($wp_rewrite->using_permalinks()) 
        $pagination['base'] = user_trailingslashit(trailingslashit(remove_query_arg('s', get_pagenum_link(1))) . 'page/%#%/', 'paged'); 
    
        if (!empty($wp_query) && $pagination['total'] != 1) { 
        $pagination['add_args'] = array('s' => get_query_var('s')); 
    
        echo "<div class='paginate'><strong>Pages:</strong>" . paginate_links($pagination) . "</div>"; 
        } 
    
    } 
    

내가 도움이 :) 희망

+0

I didn를 유감 ' 내 코드를 올바르게 포맷하는 것을 관리하십시오 :) – zuzuleinen

+0

8 칸으로 들여 쓰기해야합니다. (http://meta.stackexchange.com/a/3793/245388 참조) – Sven

관련 문제