2017-01-17 10 views
0

私のサイトでは2種類のカテゴリを使用しています/blog//news/です。私は投稿に/news/カテゴリを表示したいが、私はブログ投稿のURLに/blog/カテゴリを表示したくない。WP Permalinks:投稿にwpカテゴリの1種類だけを表示するurl

私はすでに各カテゴリに多くの投稿と異なるテンプレートがありますので、これを行うためのページを作成しないようにしたいと思います。考え方は次のとおりです。

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

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

これは可能ですか?

答えて

0

2つのことを行う必要があります。まず、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); 

第二に、このための書き換えルールを作ります毎回実行する必要はありません。一度だけ。あるいは、options-permalink.phpに移動して「保存」をクリックすることもできます。

私は、次の設定でテスト:

settings

関連する問題