Alterar o texto de ajuda "Inserir título aqui" em um tipo de postagem personalizado

20

Eu tenho um tipo de postagem personalizado criado para um diretório que acabará sendo classificado em ordem alfabética. Classificarei as postagens em ordem alfabética por título, por isso quero ter certeza de que o Título seja inserido como sobrenome / nome. Existe uma maneira de alterar esse texto de ajuda padrão - "Inserir título aqui" - em minha postagem personalizada para outra coisa?

John Chandler
fonte
11
Para as pessoas que olham para esta pergunta agora (desde o WordPress 3.1), consulte algumas das respostas mais recentes abaixo para uma melhor (mais solução "WordPress Way").
Tom Auger #

Respostas:

21

Não há como personalizar essa sequência explicitamente. Mas é passado através da função de tradução e, portanto, é fácil de filtrar.

Tente algo assim (não esqueça de mudar para o seu tipo de postagem):

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;
}
Rarst
fonte
4
Use o filtro enter_title_here
Pbearne 18/01/16
2
Bom, mas veja as novas respostas abaixo.
Mark
35

Sei que estou um pouco atrasado para a festa aqui, mas gostaria de acrescentar que o enter_title_herefiltro foi adicionado especificamente para esse fim no 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;
}

Altere your_post_typee your_textdomainpara corresponder ao seu próprio nome de tipo de postagem e domínio de texto.

Dave Romsey
fonte
5
Pequeno esclarecimento. Não deve haver necessidade da verificação is_admin (), pois esse filtro em si só será acionado quando estiver na área de administração. Se, por algum motivo, você tiver um formulário front-end, é muito provável que você deseje que esse filtro seja aplicado de qualquer maneira.
Philip Downer
7

Desculpe desenterrar esta questão do túmulo, mas há uma solução melhor fornecida desde o WordPress 3.1. O 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' );
Abhik
fonte
2
Novas respostas construtivas são sempre bem-vindas.
Pieter Goosen
Esta é a resposta correta (moderna), no entanto a resposta de Martin-Al se lembra de usar a função de invólucro gettext localização, por isso deve ser cuidadosamente estudado, bem como: wordpress.stackexchange.com/a/6819/3687
Tom Auger
5

Dê uma olhada na wp-admin/edit-form-advanced.phplinha 246 (linha 329, a partir do 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>
Martin-Al
fonte
Para ser claro, isso é novo no 3.1 .
Jan Fabry
2

A melhor maneira de obter o formato do título desejado é remover o título completamente e adicionar dois campos personalizados para as partes do nome com rótulos adequados. Quando a postagem for salva, crie o título por PHP.

fuxia
fonte