Cambie el texto de ayuda "Ingrese el título aquí" en un tipo de publicación personalizada

20

Tengo un tipo de publicación personalizado creado para un directorio que terminará siendo ordenado alfabéticamente. Ordenaré las publicaciones en orden alfabético por título, por lo que quiero asegurarme de que el Título se ingrese como apellido / nombre. ¿Hay alguna manera de cambiar ese texto de ayuda predeterminado - "Ingresar título aquí" - en mi publicación personalizada a otra cosa?

John Chandler
fuente
1
Para las personas que están viendo esta pregunta ahora (desde WordPress 3.1), vea algunas de las respuestas más recientes a continuación para una mejor (más solución "WordPress Way").
Tom Auger

Respuestas:

21

No hay forma de personalizar esa cadena explícitamente. Pero se pasa a través de la función de traducción y, por lo tanto, es fácil de filtrar.

Pruebe algo como esto (no olvide cambiar su tipo de publicación):

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
fuente
44
Use el filtro enter_title_here
Pbearne
2
Bien, pero mira las nuevas respuestas a continuación.
Mark
35

Sé que llego un poco tarde a la fiesta aquí, pero me gustaría agregar que el enter_title_herefiltro se agregó específicamente para este propósito en 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;
}

Cambie your_post_typey your_textdomaincoincida con su propio nombre de tipo de publicación y dominio de texto.

Dave Romsey
fuente
55
Pequeña aclaración. No debería ser necesario comprobar is_admin () ya que este filtro solo se activará en el área de administración. Si por alguna razón tuvo un formulario de front-end, es muy posible que desee aplicar este filtro de todos modos.
Philip Downer
7

Lamento desenterrar esta pregunta desde la tumba, pero hay una mejor solución provista desde WordPress 3.1. El 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
fuente
2
Nuevas respuestas constructivas son siempre bienvenidas.
Pieter Goosen
Esta es la respuesta correcta (moderna), sin embargo, la respuesta de Martin-Al recuerda usar la función de contenedor de localización gettext, por lo que también debe estudiarse cuidadosamente: wordpress.stackexchange.com/a/6819/3687
Tom Auger
5

Eche un vistazo wp-admin/edit-form-advanced.phpa la línea 246 (línea 329, a partir de 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
fuente
Para ser claros, esto es nuevo en 3.1 .
Jan Fabry
2

La mejor manera de obtener el formato de título que desea es eliminar el título por completo y agregar dos campos personalizados para las partes del nombre con las etiquetas adecuadas. Cuando se guarda la publicación, cree el título por PHP.

fuxia
fuente