web-dev-qa-db-fra.com

Permaliens Question: Ajout d’un préfixe UNIQUEMENT devant les messages

Je souhaite que tous mes messages aient la structure/ARTICLES /% post-name%.

Mais dès que je modifie la structure personnalisée en conséquence, pour une raison qui me bat, wordpress ajoute le préfixe articles à l’ensemble du tableau.

Je me retrouve donc avec des URL comme celle-ci pour mes pages de catégorie, avec ce qui suit:

mysite.com/articles/category/videos

ici les vidéos sont une catégorie et comme je n’ai pas changé de catégorie, j’attendais que les URL soient bien, mysite.com/category/videos), et non pas mysite.com/articles/category/ quoique de toute évidence, un tel L'URL n'a pas de sens.

Sur l’écran permalinks, sous l’option Common Settings de Post name, j’obtiens un exemple de lien grisé (non modifiable) qui affiche quelque chose comme mysite.com/sample-post.

J'aurais aimé pouvoir éditer cette information grisée

à mysite.com/articles/sample-post tout en conservant les autres options telles quelles.

Mais cela ne semble pas être possible.

Suis-je dans une impasse ici?

Existe-t-il un moyen de ne modifier que les URL postales sans affecter les autres URL?

2
Average Joe

1) Ajoutez cette réécriture à la fin de votre function.php

function add_rewrite_rules( $wp_rewrite )
{
    $new_rules = array(
        'YOUR_PREFIX/(.+?)/?$' => 'index.php?post_type=post&name='. $wp_rewrite->preg_index(1),
    );

    $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}
add_action('generate_rewrite_rules', 'add_rewrite_rules'); 

function change_blog_links($post_link, $id=0){

    $post = get_post($id);

    if( is_object($post) && $post->post_type == 'post'){
        return home_url('/YOUR_PREFIX/'. $post->post_name.'/');
    }

    return $post_link;
}
add_filter('post_link', 'change_blog_links', 1, 3);

2) Allez dans Paramètres> Permaliens et cliquez sur Save Changes.

2
Fury

Wordpress place "/ category /" par défaut en tant que base de catégories dans les permaliens, même pour une page de catégorie.

Vous devez modifier votre structure permalien personnalisée pour:

/% catégorie% /% postname% /

Mettez "articles" dans le champ de base de la catégorie et vos liens permanents, par exemple à la page de catégorie "Vidéos", s'afficheront sous cette forme:

mysite.com/articles/videos

Cela ne fonctionnera pas avec les permaliens de post pensés car des "articles" seront omis du permalien comme ceci:

mysite.com/videos/postname
2
drivebass

Le WordPress SEO Plugin de Yoast a une section appelée permaliens où vous pouvez enlever la base de la catégorie (habituellement/category /) de l’URL de la catégorie.

0
Michael Ecklund