เปลี่ยนข้อความช่วยเหลือ“ ใส่ชื่อที่นี่” ในประเภทโพสต์ที่กำหนดเอง


20

ฉันมีประเภทโพสต์ที่กำหนดเองที่สร้างขึ้นสำหรับไดเรกทอรีที่จะจบลงด้วยการเรียงลำดับตามตัวอักษร ฉันจะเรียงลำดับโพสต์ตามตัวอักษรตามชื่อเรื่องดังนั้นฉันต้องการให้แน่ใจว่าชื่อถูกป้อนเป็นนามสกุล / ชื่อจริง มีวิธีในการเปลี่ยนข้อความช่วยเหลือเริ่มต้น - "ใส่ชื่อที่นี่" - ในโพสต์ที่กำหนดเองของฉันเป็นอย่างอื่นได้หรือไม่


1
สำหรับคนที่มองคำถามนี้ในขณะนี้ (ตั้งแต่ WordPress 3.1) โปรดดูคำตอบที่ใหม่กว่าด้านล่างนี้เพื่อการแก้ปัญหาที่ดีกว่า (เพิ่มเติม "WordPress Way")
Tom Auger

คำตอบ:


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 () เนื่องจากตัวกรองนี้จะเริ่มทำงานเมื่ออยู่ในพื้นที่ผู้ดูแลระบบเท่านั้น หากด้วยเหตุผลบางอย่างที่คุณมีแบบฟอร์มส่วนหน้าเป็นไปได้ว่าคุณจะต้องการใช้ตัวกรองนี้อยู่ดี
Philip Downer

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
คำตอบที่สร้างสรรค์ใหม่ยินดีต้อนรับเสมอ
Pieter Goosen

นี่เป็นคำตอบที่ถูกต้อง (ทันสมัย) แต่คำตอบของ Martin-Al จำได้ว่าใช้ฟังก์ชั่น wrapper การแปลของ gettext ดังนั้นควรศึกษาอย่างรอบคอบเช่นกัน: wordpress.stackexchange.com/a/6819/3687
Tom Auger


2

วิธีที่ดีที่สุดในการรับรูปแบบชื่อที่คุณต้องการคือการลบชื่อออกอย่างสมบูรณ์และเพิ่มสองฟิลด์ที่กำหนดเองสำหรับส่วนชื่อที่มีป้ายกำกับที่เหมาะสม เมื่อบันทึกโพสต์ให้สร้างชื่อต่อ PHP

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.