मैं फ़ंक्शन स्क्रीन के माध्यम से डिफ़ॉल्ट रूप से "स्क्रीन विकल्प" और मेटाबोक्स ऑर्डर सेट करने के लिए किसी तरह (किसी भी तरह) की तलाश कर रहा हूं। किसी को भी वे यहाँ प्रदान कर सकते हैं किसी भी मदद करता है?
मैं फ़ंक्शन स्क्रीन के माध्यम से डिफ़ॉल्ट रूप से "स्क्रीन विकल्प" और मेटाबोक्स ऑर्डर सेट करने के लिए किसी तरह (किसी भी तरह) की तलाश कर रहा हूं। किसी को भी वे यहाँ प्रदान कर सकते हैं किसी भी मदद करता है?
जवाबों:
आपको मेटा बॉक्स को हटाने की आवश्यकता होगी, और उन्हें फिर से उसी क्रम में जोड़ना होगा जो आप चाहते हैं।
मेटा बॉक्स को अक्षम करने के लिए: (अपनी आवश्यकताओं के अनुसार, 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;
निम्न उदाहरण में, की जगह {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
{CPT}
नामकरण से कुछ उलझन में था ; स्पष्ट करने के लिए, यदि आपके पास नाम का कोई पोस्ट प्रकार है event
, तो आपको एक फ़िल्टर जोड़ना होगा get_user_option_meta-box-order_event
।