Modifica il testo della guida "Inserisci titolo qui" su un tipo di post personalizzato


20

Ho creato un tipo di post personalizzato per una directory che finirà per essere ordinata alfabeticamente. Ordinerò i post in ordine alfabetico per titolo, quindi voglio assicurarmi che il titolo sia inserito come cognome / nome. C'è un modo per cambiare il testo di aiuto predefinito - "Inserisci il titolo qui" - nel mio post personalizzato in qualcos'altro?


1
Per le persone che stanno esaminando questa domanda ora (da WordPress 3.1), consultare alcune delle risposte più recenti di seguito per una soluzione migliore (più "WordPress Way").
Tom Auger,

Risposte:


21

Non è possibile personalizzare esplicitamente quella stringa. Ma è passato attraverso la funzione di traduzione ed è quindi facile da filtrare.

Prova qualcosa del genere (non dimenticare di cambiare il 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 'Enter Last Name, Followed by First Name';

    return $input;
}

4
Usa il filtro enter_title_here
Pbearne il

2
Bene, ma vedi le nuove risposte di seguito.
Segna il

35

So di essere un po 'in ritardo alla festa qui, ma vorrei aggiungere che il enter_title_herefiltro è stato aggiunto appositamente 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 __( 'Enter your name here', 'your_textdomain' );
    }

    return $input;
}

Modifica your_post_typee your_textdomainabbina il nome del tuo post e il dominio di testo.


5
Piccolo chiarimento. Non dovrebbe essere necessario il controllo is_admin () poiché questo filtro si attiva solo nell'area di amministrazione. Se per qualche motivo hai avuto un modulo front-end, è molto probabile che tu voglia applicare questo filtro comunque.
Philip Downer,

7

Mi dispiace scavare questa domanda dalla tomba, ma c'è una soluzione migliore fornita da WordPress 3.1. Il enter_title_herefiltro.

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' );

2
Nuove risposte costruttive sono sempre benvenute.
Pieter Goosen

Questa è la risposta (moderna) corretta, tuttavia la risposta di Martin-Al ricorda di usare la funzione wrapper di localizzazione gettext, quindi dovrebbe essere attentamente studiata anche: wordpress.stackexchange.com/a/6819/3687
Tom Auger


2

Il modo migliore per ottenere il formato del titolo desiderato è 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 per PHP.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.