डिफ़ॉल्ट व्यवस्थापक स्क्रीन विकल्प और मेटाबॉक्स ऑर्डर सेट करें


28

मैं फ़ंक्शन स्क्रीन के माध्यम से डिफ़ॉल्ट रूप से "स्क्रीन विकल्प" और मेटाबोक्स ऑर्डर सेट करने के लिए किसी तरह (किसी भी तरह) की तलाश कर रहा हूं। किसी को भी वे यहाँ प्रदान कर सकते हैं किसी भी मदद करता है?


2014 अपडेट: उन लोगों के लिए जिन्हें बस मेटा बॉक्स को फिर से व्यवस्थित करने की आवश्यकता है, नीचे नबील का जवाब देखें
21

जवाबों:


23

पोस्ट एडिट पेजों पर मेटा बॉक्स का क्रम सेट करना

आपको मेटा बॉक्स को हटाने की आवश्यकता होगी, और उन्हें फिर से उसी क्रम में जोड़ना होगा जो आप चाहते हैं।

मेटा बॉक्स को अक्षम करने के लिए: (अपनी आवश्यकताओं के अनुसार, HTML कोड में मेटाबॉक्स आईडी को देखें कि यह जानने के लिए कि आपको फ़ंक्शंस के पहले पैरामीटर के रूप में किस नाम का उपयोग करना चाहिए)

function my_remove_meta_boxes() {

    remove_meta_box('postcustom', 'post', 'core');

    remove_meta_box('commentsdiv', 'post', 'core');

    ...
}

add_action( 'admin_menu', 'my_remove_meta_boxes' );

उन्हें निकालने के बाद, आप उन्हें नए पदों पर जोड़ने के लिए add_meta_box फ़ंक्शन का उपयोग कर सकते हैं: http://codex.wordpress.org/Function_Reference/add_meta_box । मेटा बॉक्स का क्रम उस क्रम पर निर्भर करता है जिसमें आप add_meta_box फ़ंक्शन को कॉल करते हैं। उदाहरण: निम्नलिखित कोड स्निपेट के साथ, टिप्पणी बॉक्स कस्टम फ़ील्ड मेटा बॉक्स से पहले होगा।

function my_add_meta_boxes( $post_type, $post ) {
    if ( ('publish' == $post->post_status || 'private' == $post->post_status) && post_type_supports($post_type, 'comments') )
        add_meta_box('commentsdiv', __('Comments'), 'post_comment_meta_box', $post_type, 'normal', 'core');

    if ( post_type_supports($post_type, 'custom-fields') )
        add_meta_box('postcustom', __('Custom Fields'), 'post_custom_meta_box', $post_type, 'normal', 'core');

    ...
}

add_action( 'add_meta_boxes', 'my_add_meta_boxes' );

आप फ़ाइल wp-admin / edit-form-advanced.php को देखना चाह सकते हैं

पोस्ट सूची पृष्ठ पर कौन सा कॉलम शीर्षक दिखा रहा है, इसे सेट करना

आपको फ़िल्टर प्रबंधन _ {$ post_type} _posts_columns का उपयोग करने की आवश्यकता है। उदाहरण: निम्नलिखित स्निपेट टिप्पणियों के कॉलम को हटा देगा।

function my_remove_columns( $posts_columns ) {
    unset( $posts_columns['comments'] );

    return $posts_columns;
}

add_filter( 'manage_post_posts_columns', 'my_remove_columns' );

पोस्ट सूची पृष्ठ पर दिखाए जाने वाले डिफ़ॉल्ट परिणामों को सेट करना

'एडिट _ {$ post_type} _per_page' और 'edit_posts_per_page' फ़िल्टर का उपयोग करें।

function my_edit_post_per_page( $per_page, $post_type ) {

    $edit_per_page = 'edit_' . $post_type . '_per_page';
    $per_page = (int) get_user_option( $edit_per_page );
    if ( empty( $per_page ) || $per_page < 1 )
        $per_page = 1;

    return $per_page;
}

add_filter( 'edit_posts_per_page', 'my_edit_post_per_page' );

विशिष्ट पोस्ट प्रकार को लक्षित करने के लिए:

  • पृष्ठों के लिए add_filter( 'edit_{post type}_per_page', 'my_edit_post_per_page' );उदाहरण के add_filter( 'edit_post_per_page', 'my_edit_post_per_page' );लिए पोस्ट का उपयोग करें add_filter( 'edit_page_per_page', 'my_edit_post_per_page' );

  • या अपने फ़ंक्शन के भीतर एक शर्त का उपयोग करें। उदाहरण के लिए:

    फ़ंक्शन my_edit_post_per_page ($ per_page, $ post_type) {

    if( $post_type == 'post' ) {
        $edit_per_page = 'edit_' . $post_type . '_per_page';
        $per_page = (int) get_user_option( $edit_per_page );
        if ( empty( $per_page ) || $per_page < 1 )
            $per_page = 1;
    }
    
    
    return $per_page;
    

क्षमा करें, शायद मैंने खुद को सही तरीके से नहीं समझाया। मैं व्यवस्थापक क्षेत्र में पोस्ट संपादन पृष्ठ पर मेटा बॉक्स के साथ-साथ व्यवस्थापक पोस्ट सूची पृष्ठ पर प्रदर्शित करने के लिए पोस्ट की डिफ़ॉल्ट संख्या निर्धारित करने की बात कर रहा था।
NetConstructor.com

1
तो तकनीकी रूप से यह एक प्रश्न नहीं है, यह वास्तव में 2 प्रश्न हैं?
टॉम जम्मू नॉवेल

मैंने अपना उत्तर संशोधित कर दिया। यदि आपको अधिक विवरण की आवश्यकता है तो मुझे बताएं।
sorich87

@ sorich87 आपकी प्रतिक्रिया के लिए धन्यवाद, हालांकि मुझे याद है कि प्रत्येक मेटाबॉक्स के सटीक क्रम के लिए कोई रास्ता नहीं था या क्या था? शायद मुझे थोड़ा और विशिष्ट होना चाहिए। मैं मूल रूप से विभिन्न कोड स्निपेट की तलाश कर रहा हूं, जो मुझे प्रत्येक खाते में लॉगिन किए बिना सभी उपयोगकर्ताओं के लिए विभिन्न विकल्प पूर्व-निर्धारित करते हैं। उदाहरण: पोस्ट एडिट पेजों पर मेटा बॉक्स का सटीक क्रम सेट करना, पोस्ट सूची पृष्ठ पर कौन सा कॉलम शीर्षक दिखाना है, यह पोस्ट सूची पृष्ठ पर दिखाए जाने वाले डिफ़ॉल्ट परिणाम सेट करना ... जैसी चीजें। अग्रिम में धन्यवाद।
NetConstructor.com

मैंने अपना उत्तर संशोधित कर दिया।
sorich87

9

निम्न उदाहरण में, की जगह {CPT}पोस्ट प्रकार नाम के साथ, की तरह post, page, book, event, imaginary, foobar... तो अगर आप एक पोस्ट प्रकार नामित किया है event, तो आप के लिए एक फिल्टर जोड़ने के लिए की आवश्यकता होगी get_user_option_meta-box-order_event

add_filter( 'get_user_option_meta-box-order_{CPT}', 'metabox_order' );
function metabox_order( $order ) {
    return array(
        'normal' => join( 
            ",", 
            array(       // vvv  Arrange here as you desire
                'customdiv-{CPT}',
                'authordiv',
                'slugdiv',
            )
        ),
    );
}

टिप्पणियाँ:

  • साथ में normal, आप भी कर सकते हैं sideऔरadvanced
  • मान अल्पविराम से अलग किए गए आईडी हैं, आप पृष्ठ स्रोत कोड को देख सकते हैं या आप अनुमान लगा सकते हैं
  • कोई भी मेटाबोक्स जो आपके कस्टम ऑर्डर में शामिल नहीं है, आपकी सूची के अंत में स्वचालित रूप से जोड़ दिया जाएगा।

1
मैं {CPT}नामकरण से कुछ उलझन में था ; स्पष्ट करने के लिए, यदि आपके पास नाम का कोई पोस्ट प्रकार है event, तो आपको एक फ़िल्टर जोड़ना होगा get_user_option_meta-box-order_event
21
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.