web-dev-qa-db-ja.com

1カテゴリの投稿のみのパーマリンクにURLプレフィックスを追加する

私はパーマリンクの構造を持っています http://domain.com/%postname%/ 、これは私が私のほとんどの投稿に残しておきたいものですが、私が移動したい投稿の1つのカテゴリがあります http://domain.com/%postname%/ から http://domain.com/articles/%postname%/ まで。

他のすべての投稿のURLを変更せずに、その投稿の1つのカテゴリに対してこれを実現する方法を教えてください。

5
Nick5a1

articlesがカテゴリのスラッグであるとします。

1.カスタムの書き換え規則を追加します。

add_action('init', function()
{
    add_rewrite_rule('^articles/([^/]+)/?$', 'index.php?name=$matches[1]', 'top');
}, 10, 0);

2.投稿リンクをフィルタリングします。

add_filter('post_link', function($post_link, $post, $leave_name = false, $sample = false)
{
    if ( has_category('articles', $post) ) {
        $post_link = str_replace('/' . $post->post_name, '/articles/' . $post->post_name, $post_link);
    }

    return $post_link;

}, 10, 4);

それで全部です。 functions.phpで試してみて、パーマリンク構造をフラッシュすることを忘れないでください。

参照先

6
MinhTri