Змініть текст довідки "Введіть назву сюди" на тип користувальницької пошти


20

У мене створений спеціальний тип публікації для каталогу, який в кінцевому підсумку буде сортований за алфавітом. Я буду сортувати пости в алфавітному порядку за заголовком, тому хочу переконатися, що заголовок введено як прізвище / ім’я. Чи є спосіб змінити цей довідковий текст за замовчуванням - "Введіть назву сюди" - в моєму власному дописі на щось інше?


1
Для людей, які зараз переглядають це питання (починаючи з WordPress 3.1), будь ласка, дивіться деякі новіші відповіді нижче для кращого (докладніше рішення "WordPress Way").
Том Оже

Відповіді:


21

Немає способу явно налаштувати цей рядок. Але він передається через функцію перекладу, і тому його легко відфільтрувати.

Спробуйте щось подібне (не забудьте змінити тип публікації):

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
Використовуйте фільтр enter_title_here
Pbearne

2
Добре, але нові відповіді дивіться нижче.
Марк

35

Я знаю, що тут я трохи запізнююся на вечірку, але хотів би додати, що 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щоб вони відповідали вашим власним імені поста типу і текст домену.


5
Невелике уточнення. Не повинно бути ніякої потреби перевірити is_admin (), оскільки сам цей фільтр запускатиметься лише в області адміністратора. Якщо з якоїсь причини у вас була форма фронтальної форми, то цілком можливо, що ви хочете, щоб цей фільтр застосований у будь-якому випадку.
Філіп Даунер

7

Вибачте, щоб перейняти це питання з могили, але є краще рішення, оскільки 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' );

2
Нові конструктивні відповіді завжди вітаються.
Пітер Гусен

Це правильна (сучасна) відповідь, проте відповідь Мартіна-Аль пам’ятає використовувати функцію обгортки локалізації gettext, тому її слід також уважно вивчити: wordpress.stackexchange.com/a/6819/3687
Tom Auger


2

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.