बदलें "यहाँ शीर्षक दर्ज करें" एक कस्टम पोस्ट प्रकार पर पाठ की मदद करें


20

मेरे पास एक निर्देशिका के लिए एक कस्टम पोस्ट प्रकार बनाया गया है जो अंत में वर्णानुक्रम में सॉर्ट किया जाएगा। मैं शीर्षक द्वारा वर्णमाला के क्रम में पदों को छांटूंगा, इसलिए मैं यह सुनिश्चित करना चाहता हूं कि शीर्षक अंतिम नाम / पहले नाम के रूप में दर्ज किया गया है। क्या उस डिफ़ॉल्ट सहायता पाठ को बदलने का एक तरीका है - "शीर्षक यहाँ दर्ज करें" - मेरे कस्टम पोस्ट में कुछ और करने के लिए?


1
इस प्रश्न को देखने वाले लोगों के लिए (वर्डप्रेस 3.1 के बाद से) कृपया बेहतर (अधिक "वर्डप्रेस वे" समाधान के लिए नीचे दिए गए कुछ नए उत्तर देखें)।
टॉम ऑगर

जवाबों:


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वर्डप्रेस 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

इस सवाल को कब्र से खोदने के लिए क्षमा करें, लेकिन वर्डप्रेस 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
नए रचनात्मक जवाब हमेशा स्वागत करते हैं।
पीटर गोयन ने

यह सही (आधुनिक) उत्तर है, हालांकि मार्टिन-अल का जवाब गेटटेक्स्ट स्थानीयकरण आवरण समारोह का उपयोग करने के लिए याद है, इसलिए सावधानीपूर्वक अध्ययन किया जाना चाहिए: wordpress.stackexchange.com/a/6819/3687
टॉम डेकर


2

आपके द्वारा इच्छित शीर्षक प्रारूप प्राप्त करने का सबसे अच्छा तरीका शीर्षक को पूरी तरह से हटा देना है और उचित लेबल वाले नाम भागों के लिए दो कस्टम फ़ील्ड जोड़ना है। जब पद बच जाता है, तो प्रति PHP शीर्षक बनाएं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.