Modificare il testo di aiuto "Inserisci titolo qui" su un custom post type

12 gen 2011, 20:10:38
Visualizzazioni: 19.5K
Voti: 24

Ho creato un custom post type per una directory che verrà ordinata alfabeticamente. Ordinerò i post in ordine alfabetico per titolo, quindi voglio assicurarmi che il Titolo venga inserito come cognome/nome. Esiste un modo per modificare quel testo di aiuto predefinito - "Inserisci titolo qui" - nel mio custom post con qualcos'altro?

1
Commenti

Per chi sta guardando questa domanda ora (da WordPress 3.1 in poi) si prega di consultare alcune delle risposte più recenti qui sotto per una soluzione migliore (più "in stile WordPress").

Tom Auger Tom Auger
6 dic 2016 19:02:34
Tutte le risposte alla domanda 5
1
44

So che sono un po' in ritardo qui, ma vorrei aggiungere che il filtro enter_title_here è stato aggiunto specificamente per questo scopo in WordPress v3.1.

add_filter( 'enter_title_here', 'custom_enter_title' );
function custom_enter_title( $input ) {
    if ( 'your_post_type' === get_post_type() ) {
        return __( 'Inserisci il tuo nome qui', 'your_textdomain' );
    }

    return $input;
}

Sostituisci your_post_type e your_textdomain con il nome del tuo post type e il tuo text domain.

25 mar 2011 04:40:18
Commenti

Piccola precisazione. Non dovrebbe essere necessario il controllo is_admin() poiché questo filtro stesso verrà attivato solo nell'area di amministrazione. Se per qualche motivo avessi un modulo front-end, è molto probabile che vorresti comunque applicare questo filtro.

Philip Downer Philip Downer
10 feb 2013 00:30:35
2
23

Non esiste un modo esplicito per personalizzare quella stringa. Tuttavia, viene passata attraverso una funzione di traduzione e quindi è facile da filtrare.

Prova qualcosa del genere (non dimenticare di modificare con il tuo tipo di post):

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 'Inserisci Cognome, seguito da Nome';

    return $input;
}
12 gen 2011 20:19:31
Commenti

Utilizza il filtro enter_title_here

Pbearne Pbearne
18 gen 2016 22:27:43

Buono, ma vedi le nuove risposte qui sotto.

Mark Mark
27 ott 2016 00:23:09
2

Scusate se riporto in vita questa domanda, ma esiste una soluzione migliore disponibile da WordPress 3.1. Il filtro enter_title_here.

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

    // Per il CPT 1
    if  ( 'custom_post_type_1' == $screen->post_type ) {
        $title = 'Nuovo titolo per CPT1';

    // Per il CPT 2
    } elseif ( 'custom_post_type_2' == $screen->post_type ) {
        $title = 'Nuovo titolo per CPT2';

    // Per un altro CPT
    } elseif ( 'custom_post_type_3' == $screen->post_type ) {
        $title = 'Nuovo titolo per CPT3';
    }
    // E così via

    return $title;
}

add_filter( 'enter_title_here', 'change_default_title' );
23 mag 2014 10:32:40
Commenti

Nuove risposte costruttive sono sempre benvenute.

Pieter Goosen Pieter Goosen
23 mag 2014 10:37:44

Questa è la risposta corretta (moderna), tuttavia la risposta di Martin-Al ricorda di utilizzare la funzione di localizzazione gettext, quindi dovrebbe essere studiata con attenzione anch'essa: http://wordpress.stackexchange.com/a/6819/3687

Tom Auger Tom Auger
6 dic 2016 18:55:12
1

Dai un'occhiata a wp-admin/edit-form-advanced.php alla riga 246 (riga 329, a partire da WP3.5)

<label class="screen-reader-text" id="title-prompt-text" for="title">
<?php echo apply_filters( 'enter_title_here', __( 'Inserisci il titolo qui' ), $post ); ?>
</label>
12 gen 2011 20:14:17
Commenti

Per essere chiari, questa è una novità nella 3.1.

Jan Fabry Jan Fabry
18 feb 2011 16:26:58
0

Il modo migliore per ottenere il formato del titolo che desideri è rimuovere completamente il titolo e aggiungere due campi personalizzati per le parti del nome con etichette appropriate. Quando il post viene salvato, crea il titolo tramite PHP.

13 gen 2011 00:20:40