Si vous utilisez les customs post types sur votre site WordPress, vous pouvez personnaliser l’affichage du texte de l’ajout d’un titre pour chaque type différent (en HTML, on appelle ça un placeholder).

Si vous ne modifiez rien, vous aurez pour tous vos types de contenus la phrase “Saisissez votre titre ici”.

titre cpt wpmarmite

Et bien suivant que vous ajoutiez un film, un bien immobilier, un livre ou n’importe quoi d’autre, vous pouvez transformer ce texte avec “Ajoutez un livre” par exemple.

Je reprends l’exemple du custom post type “Séries TV” utilisé dans le snippet “Créer un Custom Post Type dans WordPress sans plugin”.

Ajoutez le code suivant dans le fichier functions.php de votre thème enfant :

/* Modifier le texte "Saisissez votre titre ici" d'un custom post type */

add_filter( 'enter_title_here', 'wpm_change_title_cpt' );

function wpm_change_title_cpt( $title ){
//la fonction get_current_screen() permet de récupérer le post type
$screen = get_current_screen();

// Si le post type de l'écran actuel est 'seriestv'
if ( 'seriestv' == $screen->post_type ) {
// Alors on modifie le titre d'origine par celui-la
$title = 'Entrez le titre de la série TV';
}

// On renvoie notre nouveau titre
return $title;
}

Remplacez simplement ‘seriestv’ par le nom de votre custom post type et ‘Entrez le titre de la série TV‘ par le texte que vous souhaitez afficher.

Ici, nous avons écrit ‘seriestv’ et non ‘Séries TV’ car c’est la 1ere version que nous avons déclarée dans la fonction register_post_type() (et elle ne doit contenir ni espaces, ni majuscules, ni caractères spéciaux).

Lorsqu’on cherche à créer une nouvelle série télé, le nouveau placeholder apparaît :

titre cpt modifié wpmarmite

Modifier l’indice de plusieurs types de contenus

Si vous utilisez plusieurs types de contenus sur votre site et que vous souhaitez personnaliser tous les placeholder, vous avez deux solutions.

La première est de copier-coller ce code autant de fois que vous avez de custom post types pour modifier tous vos indices.

Attention cependant à bien modifier le nom de la fonction à chaque fois. Par exemple wpm_change_title_cpt_2 , car deux fonctions ne peuvent pas avoir le même nom.

La seconde solution est d’ajouter une nouvelle condition pour tester le type de contenu. Par exemple si un CPT “Livre” est présent en plus des “Séries TV”, on peut adapter le code de cette façon :

/* Modifier le texte "Saisissez votre titre ici" d'un custom post type */

add_filter( 'enter_title_here', 'wpm_change_placeholder_cpt' );

function wpm_change_placeholder_cpt( $title ){
//la fonction get_current_screen() permet de récupérer le post type
$screen = get_current_screen();

// Si le post type de l'écran actuel est 'seriestv'
if ( 'seriestv' == $screen->post_type ) {
// Alors on modifie le titre d'origine par celui-la
$title = 'Entrez le titre de la série TV';
}

// Si le post type de l'écran actuel est 'livre'
if ( 'livre' == $screen->post_type ) {
// Alors on modifie le titre d'origine par celui-la
$title = 'Entrez le titre du livre';
}

// On renvoie notre nouveau titre
return $title;
}

Bien sûr, vous pouvez ajouter autant de conditions que vous avez de types de contenus. Cela fonctionne aussi pour les articles (post) et les pages (page).