Supprimer le /blog des permaliens de WordPress 3.0 multisite

Le mode multi-site introduit sous WordPress 3.0 vous permet de créer des sites à la chaîne. Malheureusement, un slash blog /blog vient s’ajouter en fin du domaine principal ce qui n’a rien d’attractif. Une manipulation via le functions.php nous permettra de l’enlever.

Ce tutoriel va réutiliser le code source du plugin Remove /blog slug for WPMU (plugin indisponible). La grosse différence part du principe qu’un plugin d’une dizaine de lignes pourra être directement inséré dans le fichier functions.php de WordPress.

A l’aide d’un client FTP, localisez le fichier functions.php présent dans le dossier de votre thème sous /wp-content/themes/NOM_DU_THEME/

Vous pouvez également passer par le menu Apparence puis Editeur de votre administration WordPress. A partir de la liste des fichiers sur la droite de votre écran, cliquez sur functions.php.

Rajoutez ensuite les lignes suivantes en début ou en fin de fichier tout en veillant à respecter l’ouverture et la fermeture des balises PHP. Sinon, insérez le contenu de ces balises de la ligne 3 à 15 à l’intérieur d’autres balises PHP déjà en place.

Le placement de bout de code n’étant jamais évident, je vous invite à regarder la vidéo ci-dessous qui explique la manipulation avec le thème par défaut de WordPress, à savoir TwentyTen.

<?php

add_filter("pre_update_option_category_base","cc_remove_blog_slug");
add_filter("pre_update_option_tag_base","cc_remove_blog_slug");
add_filter("pre_update_option_permalink_structure","cc_remove_blog_slug");

function cc_remove_blog_slug($tag_cat_permalink){

if(!preg_match("/^\/blog\//",$tag_cat_permalink))
return $tag_cat_permalink;

$new_permalink=preg_replace ("/^\/blog\//","/",$tag_cat_permalink );
return $new_permalink;

}

?>

Ceci fait, sauvegardez votre fichier puis rendez-vous dans le menu Réglages puis Permaliens.

Capture d'écran - Modification des permaliens de WordPress
Cette procédure permet de forcer la mise à jour des permaliens de WordPress

Là, changez une première fois la structure en place par celle de votre choix tout en retenant la précédente. Cliquez donc sur Enregistrer les modifications.

Revalidez ensuite la structure définitive en n’oubliant pas de cliquer à nouveau sur Enregistrer les modifications.

Déconnectez-vous de votre administration WordPress puis retournez sur votre site. Les URLs sont désormais libérés de la présence du /blog.

Vous disposez dorénavant d’une structure d’URL plus propre pour votre gestion multi-site avec WordPress 3.0. La présence du mot-clé blog appartient au passé et ce serait vraiment bien si les prochaines de version de WordPress pouvaient s’en passer…

Crédits photo : Maria Reyes-McDavis

24 commentaires

  1. Rémy

    Salut,
    Chez moi, ça marche bien pour les url d’articles, mais pas pour les url de catégories apparemment …
    Est-ce la cas aussi pour toi ?

    merci d’avance

  2. Rémy

    je viens de comprendre,
    l’incompatibilité venait du plugin wordpress SEO by YOAST lorsque la fonction « Enlever le répertoire de base de la catégorie (habituellement /category/) du lien de la catégorie. » est cochée ..
    mmmhh . l’ideal serait evidemment de pouvoir cumuler les 2 (supprimer « blog » ET « category » …)
    une idée ?

  3. Eddy

    Merci pour ce petit tuto vidéo, très pratique ! C’est dommage que WordPress ne permette pas de supprimer le slug blog, même si cela peut entrainer des problèmes au niveau des permaliens et des multi-sites.

  4. Operlines

    Bonjour, je viens de tomber sur votre page et je trouve ça super ce morceau de code.
    Par contre j’ai un problème avec Seo by Yoast, au niveau du fil d’ariane, il conserve le /blog. Est ce que quelqu’un saurait m’aiguiller pour corriger cela? car du fait, ça me redirige vers la page 404 lorsque je clique dans le fil d’ariane
    Par avance merci!

  5. thibault

    bonjour,
    je viens de faire une connerie : j’ai supprimé l’extension /blog directement dans réglages.
    Resultat, plus rien ne fonctionne, lorsque j’essaye de me loguer sur mon backoffice, il m’affiche une erreur 404.
    Auriez vous une solution ?

  6. Platypus Geek

    Bonjour,

    Comment ça ce passe lors de la mise à jour du thème ?
    Ce n’est pas une solution très pérenne sur le long terme, non ?

    Une idée pour améliorer ça ?

  7. Avner

    Excellent tes différentes techniques (surtout si on couple cela avec le plugin dont tu parles en commentaires) c’est parfait. Manque plus qu’un système pour la gestion du multilingue et ce serait parfait…

  8. kameleon1er

    Salut Aurélien, merci pour ce tuto fort utile que je viens de suivre et appliquer. En revanche ça ne règle toujours pas mon problème. N’ayant pas voulu me lancer de suite sur une install WPMU avec sous-domaine, j’ai opté pour la seconde façon, à savoir les sous-rep.

    J’ai donc mon site principal et un second compte pour mon Shop. Ce dernier a un thème compatible WooCommerce. Quand au site principal il bénéficie d’un thème gérant le concept de « projects » qui permettent d’afficher des prorfolios par exemple ou de rediriger vers des liens extérieurs.

    Et c’est là que j’ai le soucis au niveau permaliens.

    Dans les options de la page « Projects » je rentre l’url (http://nabil1er.com/shop) mais quand je regarde le permalien : (http://nabil1er.com/project/nabshop/ ) donc ça ne fonctionne pas et je suis renvoyé toujours à l’intérieur de mon site principal.

    Si tu avais une idée

    Merci bien.

  9. N2A

    bonjour cher grand fère aurelien, tes articles sont formidables et je les consulte depuis 2012.
    Merci de mettre un bouton de notification du style les étoiles nous permettant de façon continue à te dire combien nous les apprecions.

    Merci encore!!!

  10. Ultiseo

    Aurélien Denis est le meilleur. 2 Jours que je cherche la solution. au début septique sur cet article vu qu il date de plus de 3 ans, et en titre de l article est WORDPRESS 3.0 et nous sommes actuellement à la 4.31.Donc cherché pendant 48h des posts plus récents plein de bla bla bla certain en plagiant la Solution d’ Aurélien au final pour que rien ne fonctionne.
    Je confirme n’ hésitez pas c est presque l’ unique solution du web.

  11. Charlie

    Bonjour,
    (5 ans plus tard, le problème demeure…)
    Merci beaucoup de ton travai (vidéo + explications ecrites, c’est fromage ET dessert)l.
    L’explication est très claire, hélas, j’obtiens ce message d’erreur après modification du fichier php et lorsque j’essaie d’enregistrer les modifications des permaliens :
    Warning: Cannot modify header information – headers already sent by (output started at /homepages/11/blablabla/htdocs/blog/wp-content/themes/mon-theme/functions.php:19) in /homepages/11/blablabla/htdocs/blog/wp-includes/pluggable.php on line 1228

    De ce que je comprends (le php est loin de m’être familier…), les nouvelles lignes de codes insérées entrent en conflit avec d’autres instructions (?).
    Aurais-tu une suggestion ?
    Merci

Laisser un commentaire