web-dev-qa-db-fra.com

Modifier le texte d'aide "Entrez le titre ici" sur un type d'article personnalisé

J'ai un type de message personnalisé créé pour un répertoire qui finira par être trié par ordre alphabétique. Je vais trier les articles par ordre alphabétique par titre. Je veux donc m'assurer que le titre est entré comme nom/prénom. Y at-il un moyen de changer ce texte d'aide par défaut - "Entrez le titre ici" - dans mon message personnalisé pour quelque chose d'autre?

20
John Chandler

Il n'y a aucun moyen de personnaliser cette chaîne explicitement. Mais il passe par la fonction de traduction et est donc facile à filtrer.

Essayez quelque chose comme ça (n'oubliez pas de changer de type de message):

add_filter('gettext','custom_enter_title');

function custom_enter_title( $input ) {

    global $post_type;

    if( is_admin() && 'Enter title here' == $input && 'your_post_type' == $post_type )
        return 'Enter Last Name, Followed by First Name';

    return $input;
}
21
Rarst

Je sais que je suis un peu en retard à la fête ici, mais je voudrais ajouter que le filtre enter_title_here a été ajouté spécifiquement à cette fin dans WordPress v3.1.

add_filter( 'enter_title_here', 'custom_enter_title' );
function custom_enter_title( $input ) {
    if ( 'your_post_type' === get_post_type() ) {
        return __( 'Enter your name here', 'your_textdomain' );
    }

    return $input;
}

Modifiez your_post_type et your_textdomain pour qu'ils correspondent à votre propre nom de type de message et à votre domaine de texte.

35
Dave Romsey

Désolé de creuser cette question depuis Grave, mais il existe une meilleure solution depuis WordPress 3.1. Le filtre enter_title_here.

function change_default_title( $title ){
    $screen = get_current_screen();

    // For CPT 1
    if  ( 'custom_post_type_1' == $screen->post_type ) {
        $title = 'CPT1 New Title';

    // For CPT 2
    } elseif ( 'custom_post_type_2' == $screen->post_type ) {
        $title = 'CPT2 New Title';

    // For Yet Another CPT
    } elseif ( 'custom_post_type_3' == $screen->post_type ) {
        $title = 'CPT3 New Title';
    }
    // And, so on

    return $title;
}

add_filter( 'enter_title_here', 'change_default_title' );
6
Abhik

Jetez un coup d’œil dans wp-admin/edit-form-advanced.php à la ligne 246 (ligne 329, à partir du WP3.5)

<label class="screen-reader-text" id="title-Prompt-text" for="title">
<?php echo apply_filters( 'enter_title_here', __( 'Enter title here' ), $post ); ?>
</label>
5
Martin-Al

Le meilleur moyen d'obtenir le format de titre souhaité est de supprimer complètement le titre et d'ajouter deux champs personnalisés pour les parties de nom avec les étiquettes appropriées. Lorsque le message est enregistré, créez le titre par PHP.

2
fuxia