web-dev-qa-db-fra.com

Ajouter un préfixe d'URL uniquement aux liens permanents d'une catégorie de publications

J'ai la structure permalink http://domain.com/%postname%/ , ce que je veux conserver pour la plupart de mes messages. Cependant, il existe une catégorie de messages à partir de laquelle je souhaite passer http://domain.com/%postname%/ to http://domain.com/articles/%postname%/ .

Des idées comment je peux accomplir ceci pour cette catégorie de publications sans changer les URL de toutes les autres publications?

5
Nick5a1

Supposons que articles soit un slug de la catégorie.

1. Ajoutez une règle de réécriture personnalisée:

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

2. Filtrez le lien de publication:

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);

C'est tout. Essayez-le dans votre functions.php et souvenez-vous de vider votre structure de permalien.

Références :

6
MinhTri