Измените текст справки "Введите заголовок здесь" для пользовательского типа записи


У меня есть пользовательский тип записи, созданный для каталога, который в конечном итоге будет отсортирован в алфавитном порядке. Я буду сортировать сообщения в алфавитном порядке по названию, поэтому я хочу убедиться, что название введено как фамилия/имя. Есть ли способ изменить текст справки по умолчанию - "Введите заголовок здесь" - в моем пользовательском сообщении на что-то другое?

Author: Dave Romsey, 2011-01-12

5 answers

Нет способа явно настроить эту строку. Но он передается через функцию перевода и поэтому легко фильтруется.

Попробуйте что-то вроде этого (не забудьте изменить тип своего сообщения):

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;
}
 22
Author: Rarst, 2011-01-12 18:19:31

Я знаю, что немного опоздал на вечеринку, но я хотел бы добавить, что enter_title_here фильтр был добавлен специально для этой цели в 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;
}

Измените your_post_type и your_textdomain, чтобы они соответствовали вашему собственному имени типа сообщения и текстовому домену.

 39
Author: Dave Romsey, 2017-02-12 09:58:41

Извините, что поднимаю этот вопрос из могилы, но с WordPress 3.1 есть лучшее решение. Фильтр enter_title_here.

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' );
 8
Author: Abhik, 2014-05-23 07:32:40

Загляните в wp-admin/edit-form-advanced.php в строке 246 (строка 329, по состоянию на 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>
 5
Author: Martin-Al, 2013-01-09 00:08:38

Лучший способ получить нужный формат заголовка - полностью удалить заголовок и добавить два настраиваемых поля для частей имени с соответствующими метками. Когда сообщение будет сохранено, создайте заголовок на PHP.

 2
Author: fuxia, 2011-01-12 22:20:40