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, etc.
À l’aide de quelques lignes de code, il est possible de modifier globalement l’ensemble des titres afin de retirer ce préfixe inutile.
Pour appliquer cette astuce, copiez / collez ces lignes de code dans le fichier functions.php de votre thème enfant.
Un exemple avec le thème par défaut 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.
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.