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?
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
.
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
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.