2017-01-17 5 views
0

내 사이트 /blog//news/에서 2 가지 카테고리를 사용하고 있습니다. 내 게시물에 /news/ 카테고리를 표시하고 싶지만 블로그 게시물의 URL에 /blog/ 카테고리를 표시하고 싶지 않습니다.WP Permalinks : 게시물 URL에 한 종류의 wp 카테고리 만 표시

이미 각 카테고리별로 많은 게시물과 템플릿이 있으므로이 작업을 수행하는 페이지를 만들지 않으려합니다. 아이디어는 다음과 같습니다.

/news/ category --> index.php/news/post-name/ 

/blog/ category --> index.php/post-name/ 

이게 가능한가요?

답변

0

두 가지 작업을 수행해야합니다. 먼저 post_link 필터를 사용하여 게시물 URL을 다르게 지정하십시오.) (flush_rewrite_rules

function _20170117_rewrite() { 
    add_rewrite_rule('^news/(.?.+?)(?:/([0-9]+))?/?$', 'index.php?pagename=$matches[1] 
&page=$matches[2]', 'top'); 
    add_rewrite_rule('^news/([^/]+)(?:/([0-9]+))?/?$', 'index.php?name=$matches[1] 
&page=$matches[2]', 'top'); 
    flush_rewrite_rules(); 
} 
add_action('init', '_20170117_rewrite'); 

참고;

function _20170117_post_link($url, $post, $leavename) { 
    if(in_category('news', $post)) { 

     $url = get_site_url() . '/news/' . $post->post_name ; 
    } 
    return $url; 
} 
add_filter('post_link', '_20170117_post_link', 10, 3); 

둘째,이에 대한 재 작성 규칙을 매번 실행할 필요가 없습니다. 딱 한번. 아니면 permalink.php 옵션을 사용하여 저장을 클릭하십시오.

나는 다음과 같은 설정으로 테스트 :

settings