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.
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.
À présent, la même page avec les lignes de code en place sur votre site.
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 :
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.
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.
19 réponses
Super ça marche merci !
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 ?
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.
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
Il est possible que votre thème surclasse également mais le code présenté reste opérationnel ici.
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
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 ..
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.
Merci beaucoup!
Je cherchai une solution depuis des heures : astuces parfaite ! MERCI
Bon j’ai trouvé comment on faisait mais malheureusement même avec ton astuce cela n’a pas changé 🙁
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 ???
Au fait, ça n’a pas du tout fonctionné chez moi. Je n’ai pas poussé les investigations.
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
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. 😉
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 !
Mieux ? 🙂
Bonjour,
Comment nommer cette fonction alors ?
Cool. Je mets ça en place tout de suite pour voir.