Supprimer / modifier le préfixe des pages privées ou protégées de WordPress

WordPress propose en natif un système de gestion des pages privées et protégées. Pour les différencier des pages en libre accès, un préfixe Privé ou Protégé vient s’ajouter dans le titre ce qui n’a rien de très élégant. Un hack PHP permet de masquer ce préfixe ou de modifier le texte par défaut de WordPress.

N.B : avant toute modification de fichier de thème, procédez à une sauvegarde pour rétablir le fichier source au moindre souci.

Mise à jour du 27 décembre 2011 : une alternative est disponible sur Johnstyle.

Supprimer les préfixes des pages à accès limité

Ouvrez le fichier functions.php présent dans le dossier /wp-content/themes/NOM_DU_THEME ou en passant par le menu Apparence puis Éditeur de votre administration WordPress.

function the_title_trim($title) {
$title = attribute_escape($title);
$findthese = array(
'#Protégé&:#',
'#Privé&:#'
);
$replacewith = array(
' ', // Préfixe pour les pages "Protégé :"
' ' // Préfixe pour les pages "Privé :"
);
$title = preg_replace($findthese, $replacewith, $title);
return $title;
}
add_filter('the_title', 'the_title_trim');

Si vous utilisez le thème Twenty Ten de WordPress, placez ces lignes de code en fin de fichier functions.php. Pour les autres, il est souvent nécessaire d’englober celles-ci de balises PHP selon ce modèle :

<?php CODE A INSERER ICI ?>

Modifier les préfixes des pages à accès limité

' ', // Préfixe pour les pages "Protégé :"
' ' // Préfixe pour les pages "Privé :"

Il vous suffit de modifier ces lignes en indiquant le préfixe de votre choix entre les apostrophes. La première ligne concerne les pages de type Protégé, la seconde les pages Privé.

Dites adieu aux préfixes encombrants et maîtrisez un peu plus votre site WordPress !

Crédits photo : ikonic

15 commentaires

      1. Superbatros

        Pour l’avoir testé sur les pages type « Privé » ça fonctionne très bien, contrairement à votre astuce que je n’ai pas réussi à faire fonctionner (wordpress 3.3.1 avec le thème Traction Pro).
        Je n’ai pas testé sur les pages protégées. Merci en tout cas pour vos astuces !

  1. Coline

    9a ne fonctionne pas…
    J’ai collé :

    Et la seule chose que j’obtiens c’est :
    Privé : Accueil
    Et idem avec tous les accents dans tout mon site…

    1. Coline

      j’ai collé le bout de code que vous présentez

      (je ne sais pas pourquoi la copie du code complet ne s’est pas affiché dans mon premier message…)

    2. Coline

      Ok en fait la copie de code ne s’affiche pas.. tant pis.
      Enfin j’ai collé exactement le code que vous avez mis entre les balises php.
      et ça ne fonctionne pas…

  2. Coline

    J’ai trouvé.
    Il y avait juste une phrase de code à enlever de la div id= »leftside » qui se trouvait dans header.php (car mon menu se trouve là …)
    c’est cette ligne qui cause la répétition :
    (j’ai enlevé les < en espérant que le code s'affiche)
    li class=" ?php echo $highlight; ? " a href=" ?php bloginfo('url'); ? " Accueil /a /li

  3. Coline

    TROUVé aussi pour enlever « privé » des titres :

    simplement changer ?php the_title(); ?
    par
    ?php echo $post->post_title; ?
    dans le modèle de page (page.php)

    Ca marche sans problème !

  4. Michael

    Merci Aurelien pour cette BELLE video…

    … Mais, aaaahhrrg, ca ne marche pas du tout avec le theme utilise dans le blog…

    … en fait, je confirme, ce qui fonctionne bien, c’est la methode du « ?php echo $post->post_title; ? » de Coline, cf. commentaire juste ci-dessus

    Merci quoi qu’il en soit, ce « jeu de piste » passant par ton blog m’a permis de trouver la réponse !

    Bien amicalement,
    Michael

  5. Cedric @ Blog Com'Coach

    Merci pour ces tutos et pour les suggestions des commentateurs.
    Malheureusement j’ai testé toutes ces méthodes et rien ne fonctionne.

    Il s’agit d’un thème Artisteer que j’essaie de modifier et aucune des méthodes énoncées ici ne semblent fonctionner. Quelqu’un a-t-il réussit cette manip avec un thème Artisteer ?

    Merci
    Cédric

  6. Cedric @ Blog Com'Coach

    Ah ! en fait j’ai trouvé : Pour un thème Artisteer c’est la manipulation de Coline ci-dessus mais il faut remplacer :

    get_the_title() PAR $post->post_title dans le fichier content-page.php.

    En tout cas pour Artisteer 3 ! En espérant que ça aide quelqu’un.

    Cédric

      1. Cedric @ Blog Com'Coach

        Bonsoir Sam,

        Il faut simplement suivre la manip de Coline :
        -Aller dans Apparence / Editeur du blog WP
        -Ouvrir le fichier content-page.php.
        -Remplacer : « get_the_title() » par « $post->post_title »
        -Enregistrer les changements

        De mémoire ca devrait fonctionner !
        Cédric

Laisser un commentaire