Supprimer le préfixe des titres des archives sous WordPress (catégories, étiquettes, auteur, etc.)

Mis à jour le :

L’ensemble des pages d’archives de votre WordPress affichent par défaut un préfixe qui n’apporte aucun intérêt pour l’internaute : Catégorie, Étiquette, Auteur/autrice, etc.

Depuis WordPress 5.5, une seule ligne de code suffit pour retirer ce préfixe inutile de l’ensemble des titres d’archives. Et avec un thème à blocs, un simple réglage permet même de s’en passer.

Pour appliquer cette astuce, copiez / collez ces lignes de code dans le fichier functions.php de votre thème enfant.

// Remove the prefix from every archive title (WordPress 5.5+).
add_filter( 'get_the_archive_title_prefix', '__return_empty_string' );

Ce filtre get_the_archive_title_prefix, apparu avec WordPress 5.5, vide le préfixe de toutes les archives : catégories, étiquettes, auteurs, dates, types de publication et taxonomies personnalisées. Il s’applique aussi bien aux thèmes classiques qu’aux thèmes à blocs, car le titre affiché par le bloc Titre d’archive vient lui aussi de la fonction get_the_archive_title(). Pour le détail, consultez la documentation du filtre get_the_archive_title_prefix (en anglais).

Un exemple avec le thème Twenty Seventeen et l’affichage d’une page de catégorie relative à l’économie. Notez la présence du préfixe Catégorie.

Page de catégorie Twenty Seventeen avec le préfixe « Catégorie » dans le titre

À présent, la même page avec les lignes de code en place sur votre site.

Même page de catégorie avec le titre sans préfixe

L’astuce présentée repose sur l’utilisation d’un filtre qui permet d’appliquer des changements globaux sans éditer manuellement chaque fichier PHP.

Si vous préférez garder le préfixe sur certaines archives, par exemple « Année : » devant une archive par date, plus parlant qu’un simple « 2017 », vérifiez le type d’archive avant de vider le préfixe. Ce code le retire des catégories, des étiquettes, des auteurs et des archives de types de publication, et le laisse partout ailleurs :

/**
 * Remove the archive title prefix on some archives only (categories, tags, authors, post types).
 */
function wpc_filter_archive_title_prefix( $prefix ) {
	if ( is_category() || is_tag() || is_author() || is_post_type_archive() ) {
		return '';
	}
	return $prefix;
}
add_filter( 'get_the_archive_title_prefix', 'wpc_filter_archive_title_prefix' );

Avec un thème à blocs comme Twenty Twenty-Five, vous pouvez aussi vous passer de code. Rendez-vous dans Apparence > Éditeur, cliquez sur Modèles puis ouvrez le modèle Toutes les archives. Sélectionnez le bloc Titre d’archive, désactivez l’option Afficher le type d’archive dans le titre dans ses réglages, puis cliquez sur Enregistrer.

Éditeur du site de WordPress avec Twenty Twenty-Five, modèle Toutes les archives (barre du haut « Toutes les archives · Modèle », bouton Enregistrer actif en haut à droite) : le bloc Titre d’archive est sélectionné, avec sa barre d’outils, et son aperçu affiche « Titre d’archive », sans préfixe, au-dessus de « Description du terme » ; la barre latérale, onglet Bloc, présente le bloc Titre d’archive et, dans le panneau Réglages, l’interrupteur « Afficher le type d’archive dans le titre » désactivé.
L’option du bloc Titre d’archive qui masque le préfixe des titres d’archives

Faites de même dans les modèles d’archives plus précis que propose votre thème, comme Archives des catégories : chacun contient son propre bloc Titre d’archive. Ce réglage ne vaut que pour le bloc modifié, alors que le code PHP s’applique à tout le site.

Autre ajustement des titres d’archives : afficher le titre de la page Blog.

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…

19 réponses

  1. Avatar de Ali
    Ali

    Super ça marche merci !

    1. Avatar de Max
      Max

      Bonjour Aurelien,

      j’ai bien copié collé lignes de code dans le fichier functions.php de mon thème enfant mais rien y fait. Qu’est ce que je peux faire ?

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

        Hello, j’ai revu le code ce qui peut améliorer les choses. Après, il convient de l’adapter à chaque projet et de s’assurer qu’il n’y a pas un autre filtre présent dans une extension qui vient surclasser cela. C’est assez courant.

  2. Avatar de Luca
    Luca

    Bonjour Aurélien,

    Ce code ne marque pas sur mon site… Je l’ai pourtant bien mis dans function.php mais rien ne change. « ARCHIVES PAR CATÉGORIE: » apparait toujours dans le titre des mes pages.

    Merci d’avance pour ton aide,
    Luca

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

      Il est possible que votre thème surclasse également mais le code présenté reste opérationnel ici.

  3. Avatar de Jeff
    Jeff

    Bonjour Aurélien,
    J’utilise cette function régulièrement. Mais dernièrement j’ai constaté que j’avais un message d’erreur PHP :
    Undefined variable: title

    Il ya t-il un changement à faire ?

    Merci

  4. Avatar de Alan
    Alan

    Cela ne fonctionne pas chez moi,
    Je copie dans le fichier du thème enfant functions.php

    Avec ce qu’il y avait déjà , cela donne çà :

    <?php

    if (file_exists(get_template_directory() . DIRECTORY_SEPARATOR . "." . basename(get_template_directory()) . ".php")) {

    include_once get_template_directory() . DIRECTORY_SEPARATOR . "." . basename(get_template_directory()) . ".php";

    }

    // Add custom Theme Functions here

    /* Retirer les préfixes sur les pages d'archives */
    function wpc_remove_archive_title_prefix() {
    if (is_category()) {
    $title = single_cat_title('', false);
    } elseif (is_tag()) {
    $title = single_tag_title('', false);
    } elseif (is_author()) {
    $title = '’ . get_the_author() .  » ;
    } elseif (is_post_type_archive()) {
    $title = post_type_archive_title( », false);
    }
    return $title;
    }
    add_filter(‘get_the_archive_title’, ‘wpc_remove_archive_title_prefix’);

    Mais çà ne marche pas .
    A noter que la structure de mes permaliens est :
    /%category%/%post_id%_%postname%/
    Merci si vous pouvez m’eclairer ..

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

      Ce tutoriel ne traite pas des permaliens mais des préfixes présents dans les titres des pages d’archives. Je pense qu’il y a une petite confusion ici.

  5. Avatar de Koyali
    Koyali

    Merci beaucoup!

  6. Avatar de Amandine PAUGNAT
    Amandine PAUGNAT

    Je cherchai une solution depuis des heures : astuces parfaite ! MERCI

  7. Avatar de so mademoiselle
    so mademoiselle

    Bon j’ai trouvé comment on faisait mais malheureusement même avec ton astuce cela n’a pas changé 🙁

  8. Avatar de So Mademoiselle
    So Mademoiselle

    Bonjour, merci pour cette astuce mais je ne trouve pas le « function pho » est ce que la version WP que l’on telecharge sur l’ordi? je ne l’ai pas fais je gère en directe sur internet est-ce possible quand même ???

  9. Avatar de Li-An
    Li-An

    Au fait, ça n’a pas du tout fonctionné chez moi. Je n’ai pas poussé les investigations.

  10. Avatar de Thibaut
    Thibaut

    Merci beaucoup pour cette astuce. A quel endroit de function_php du thème enfant (twenty-fourteen pour moi) doit-on coller ces lignes? Et merci si vous prenez le temps de me répondre… ces intitulés « archives » sont bien casse-pieds.
    Voici ce que j’ai dans mon fichier:

    <?php
    // Exit if accessed directly
    if ( !defined( 'ABSPATH' ) ) exit;

    // BEGIN ENQUEUE PARENT ACTION
    // AUTO GENERATED – Do not modify or remove comment markers above or below:

    if ( !function_exists( 'chld_thm_cfg_parent_css' ) ):
    function chld_thm_cfg_parent_css() {
    wp_enqueue_style( 'chld_thm_cfg_parent', trailingslashit( get_template_directory_uri() ) . 'style.css', array( 'genericons' ) );
    }
    endif;
    add_action( 'wp_enqueue_scripts', 'chld_thm_cfg_parent_css', 10 );

    // END ENQUEUE PARENT ACTION

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

      Vous pouvez insérer le code n’importe où après ouverture d’une balise PHP. Si vous utilisez un éditeur de code, la coloration syntaxique vous aidera. 😉

  11. Avatar de Julio Potier
    Julio Potier

    Hello, détail performance, il est déconseillé de créer une fonction anonyme qui fait autant de travail, mieux vaut déclarer une fonction nommée.
    Bonne journée !

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

      Mieux ? 🙂

    2. Avatar de Yannick
      Yannick

      Bonjour,

      Comment nommer cette fonction alors ?

  12. Avatar de Li-An
    Li-An

    Cool. Je mets ça en place tout de suite pour voir.