Supprimer le /blog des permaliens de WordPress 3.0 multisite

Mis à jour le :

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.

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.

Avatar de Aurélien Denis

Protégez votre site WordPress

Vos données sont précieuses,
ne prenez pas le risque de tout perdre.
Confiez-moi votre maintenance !

Ces articles devraient t’intéresser…

26 réponses
  1. Avatar de kikikontent
    kikikontent

    WP5.9 C’est parfait merci beaucoup

  2. Avatar de Jacques Z
    Jacques Z

    Bonjour,

    Est-ce que cette solution fonctionne avec la version actuelle de WordPress, la version 5.2.3 ?

    Je vous remercie 🙂

    Jacques

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Aucune idée !

  3. Avatar de Charlie
    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

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Le fichier functions.php à la ligne 19 entre en conflit… il faut voir quelle est la fonction à l’origine du bug.

  4. Avatar de Ultiseo
    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.

  5. Avatar de N2A
    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!!!

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Un commentaire sympa c’est plus humain. 😉

  6. Avatar de Josette SZ
    Josette SZ

    Bonjour Aurélien et GRAND MERCI tout fonctionne très correctement, même jusqu’à la version 4.3 wordpress multisites.
    c’est tout bonnement GÉNIAL.

  7. Avatar de kameleon1er
    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.

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Répondu par mail.

  8. Avatar de Avner
    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…

  9. Avatar de Drolerie
    Drolerie

    A chaque fois que je fait des recherches précise je tombe sur ton blog, merci pour ton travail 🙂

  10. Avatar de Platypus Geek
    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 ?

  11. Avatar de thibault
    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 ?

    1. Avatar de Aurélien Denis
      Aurélien Denis
  12. Avatar de OXOlaterre
    OXOlaterre

    Merci beaucoup pour ce tuto qui même daté est encore bien utile !!

  13. Avatar de Operlines
    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!

  14. Avatar de Eddy
    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.

  15. Avatar de Rémy
    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 ?

    1. Avatar de Aurélien Denis
      Aurélien Denis

      Il me semble que techniquement parlant il faut détourner une fonction native de WordPress. Essaies avec ceci : http://wordpress.org/extend/plugins/wp-no-category-base/

      1. Avatar de Rémy
        Rémy

        c’est la solution a laquelle je suis arrivé oui …
        ton code + le wp-no-category-base fonctionne simultanement … impec

        merci Aurélien

        1. Avatar de Stéphane
          Stéphane

          Merci Rémy et Aurélien pour vos solutions !

          Effectivement, le plugin wordpress SEO by YOAST en était la cause.

      2. Avatar de Stéphanie Walter
        Stéphanie Walter

        Raaah merciii !! 3 mois que je galère avec ça, j’avais le même souci de conflit avec Yoast en fait, j’ai installé ton plugin et ça marche nickel !

        1. Avatar de Aurélien Denis
          Aurélien Denis

          Super !

  16. Avatar de Rémy
    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