Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

I have a custom post type created for a directory that will end up being sorted alphabetically. I will be sorting the posts in alphabetical order by title, so I want to make sure that the Title is entered as last name/first name. Is there a way to change that default help text -- "Enter Title Here" -- in my custom post to something else?

share|improve this question
add comment

5 Answers 5

up vote 8 down vote accepted

There is no way to customize that string explicitly. But it is passed through translation function and so is easy to filter.

Try something like this (don't forget to change to your post type):

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;
}
share|improve this answer
    
Yes, works perfect. Thank you. –  John Chandler Jan 12 '11 at 18:25
add comment

I know I'm a little late to the party here, but I'd like to add that there is also dedicated filter for this: enter_title_here

A working example:

add_filter( 'enter_title_here', 'custom_enter_title' );

function custom_enter_title( $input ) {
    global $post_type;

    if ( is_admin() && 'YOUR_CUSTOM_POST_TYPE' == $post_type )
        return __( 'Enter your Name here', 'your_textdomain' );

    return $input;
}

Don't forget to change YOUR_CUSTOM_POST_TYPE to your custom post type and your textdomain if required.

share|improve this answer
2  
Small clarification. Shouldn't be any need for the is_admin() check as this filter itself will only fire when in the admin area. If for some reason you had a front-end form, it's very conceivable that you would want this filter applied anyway. –  manifestphil Feb 9 '13 at 22:30
add comment

Take a look in wp-admin/edit-form-advanced.php at line 246 (line 329, as of 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>
share|improve this answer
    
To be clear, this is new in 3.1. –  Jan Fabry Feb 18 '11 at 14:26
add comment

The best way to get the title format you want is to remove the title completely and add two custom fields for the name parts with proper labels. When the post is saved, create the title per PHP.

share|improve this answer
add comment

Sorry to dig this question up from grave, but there's a better solution provided since WordPress 3.1. The enter_title_here filter.

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' );
share|improve this answer
    
New constructive answers are always welcome. –  Pieter Goosen May 23 at 7:37
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.