Ubah teks bantuan “Masukkan Judul Di Sini” pada jenis posting khusus

20

Saya memiliki jenis posting khusus yang dibuat untuk direktori yang pada akhirnya akan disortir berdasarkan abjad. Saya akan menyortir posting dalam urutan abjad berdasarkan judul, jadi saya ingin memastikan bahwa Judul dimasukkan sebagai nama belakang / nama depan. Apakah ada cara untuk mengubah teks bantuan default itu - "Masukkan Judul Di Sini" - di pos kustom saya ke yang lain?

John Chandler
sumber
1
Untuk orang-orang yang melihat pertanyaan ini sekarang (karena WordPress 3.1) silakan lihat beberapa jawaban yang lebih baru di bawah ini untuk solusi yang lebih baik (lebih banyak "WordPress Way").
Tom Auger

Jawaban:

21

Tidak ada cara untuk menyesuaikan string itu secara eksplisit. Tapi itu dilewatkan melalui fungsi terjemahan dan mudah disaring.

Coba sesuatu seperti ini (jangan lupa ubah ke jenis posting Anda):

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;
}
Jarang
sumber
4
Gunakan filter enter_title_here
Pbearne
2
Bagus, tetapi lihat jawaban baru di bawah ini.
Markus
35

Saya tahu saya agak terlambat ke pesta di sini, tetapi saya ingin menambahkan bahwa enter_title_herefilter ditambahkan khusus untuk keperluan ini di 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;
}

Ubah your_post_typedan your_textdomainuntuk mencocokkan nama jenis tulisan Anda dan domain teks.

Dave Romsey
sumber
5
Klarifikasi kecil. Seharusnya tidak diperlukan pemeriksaan is_admin () karena filter ini sendiri hanya akan aktif ketika berada di area admin. Jika karena alasan tertentu Anda memiliki formulir front-end, Anda dapat menggunakan filter ini.
Philip Downer
7

Maaf menggali pertanyaan ini dari kubur, tetapi ada solusi yang lebih baik sejak WordPress 3.1. The enter_title_herefilter.

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
sumber
2
Jawaban konstruktif baru selalu diterima.
Pieter Goosen
Ini adalah jawaban yang benar (modern), namun jawaban Martin-Al ingat untuk menggunakan fungsi wrapper pelokalan gettext, jadi harus dipelajari dengan cermat juga: wordpress.stackexchange.com/a/6819/3687
Tom Auger
5

Lihatlah wp-admin/edit-form-advanced.phppada baris 246 (baris 329, pada 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
sumber
Agar jelas, ini baru dalam 3.1 .
Jan Fabry
2

Cara terbaik untuk mendapatkan format judul yang Anda inginkan adalah menghapus judul sepenuhnya dan menambahkan dua bidang khusus untuk bagian nama dengan label yang tepat. Saat posting disimpan, buat judul per PHP.

fuxia
sumber