सामग्री संपादक से अंश मेटा बॉक्स को ऊपर ले जाएँ


11

मुझे edit_form_after_titleशीर्षक के बाद एक टेक्स्ट बॉक्स जोड़ने के लिए एक वर्डप्रेस हुक " " मिला ।

नई पोस्ट बनाते समय शीर्षक के बाद अंश प्रदर्शित करने के लिए मैं इस हुक का उपयोग कैसे कर सकता हूं?

जवाबों:


7

यह सरल है, बस postexcerptपहले अपंजीकृत बॉक्स फिर शीर्ष पर एक और जोड़ें।

यहाँ मेरा कोड है

add_action(
  'admin_menu', function () {
    remove_meta_box('postexcerpt', 'post', 'normal');
  }, 999
);

add_action('edit_form_after_title', 'post_excerpt_meta_box');

1
उस पर हे +1, लेकिन हटाने के बाद आप स्टाइल को कैसे संबोधित करते हैं meta_box?
DᴀʀᴛʜVᴀʀᴛʜ

6

मैंने यहां से अनुकूलित किया: https://wordpress.stackexchange.com/a/158485/373

/* -----------------------------------------
 * Put excerpt meta-box before editor
 * ----------------------------------------- */
function my_add_excerpt_meta_box( $post_type ) {
    if ( in_array( $post_type, array( 'post', 'page' ) ) ) {
         add_meta_box(
            'postexcerpt', __( 'Excerpt' ), 'post_excerpt_meta_box', $post_type, 'test', // change to something other then normal, advanced or side
            'high'
        );
    }
}
add_action( 'add_meta_boxes', 'my_add_excerpt_meta_box' );

function my_run_excerpt_meta_box() {
    # Get the globals:
    global $post, $wp_meta_boxes;

    # Output the "advanced" meta boxes:
    do_meta_boxes( get_current_screen(), 'test', $post );

}

add_action( 'edit_form_after_title', 'my_run_excerpt_meta_box' );

function my_remove_normal_excerpt() { /*this added on my own*/
    remove_meta_box( 'postexcerpt' , 'post' , 'normal' ); 
}
add_action( 'admin_menu' , 'my_remove_normal_excerpt' );

2
function jb_post_excerpt_meta_box($post) {
    remove_meta_box( 'postexcerpt' , $post->post_type , 'normal' );  ?>
    <div class="postbox" style="margin-bottom: 0;">
        <h3 class="hndle"><span>Excerpt</span></h3>
        <div class="inside">
             <label class="screen-reader-text" for="excerpt"><?php _e('Excerpt') ?></label>
             <textarea rows="1" cols="40" name="excerpt" id="excerpt">
                  <?php echo $post->post_excerpt; ?>
             </textarea>
        </div>
    </div>
<?php }

add_action('edit_form_after_title', 'my_post_excerpt_meta_box');

इस तरह, आप अपनी पसंद के अनुसार ठीक एक अंश बॉक्स जोड़ सकते हैं। लेकिन मूल बॉक्स को खत्म करना महत्वपूर्ण है। यदि नहीं, तो आप नए बॉक्स में अंश को नहीं बचा पाएंगे।


1

यह उत्तर एक @OzzyCeshop पोस्ट किए गए के समान है, लेकिन यह अधिक सार्वभौमिक है और यह अंश बॉक्स में एक हेडर जोड़ता है। इस विधि के लिए एक नकारात्मक पक्ष यह है कि आप स्क्रीन विकल्प के माध्यम से अंश बॉक्स को छिपा नहीं सकते हैं ... उस स्थिति में आपको @ ली-कोहेन द्वारा उत्तर का उपयोग करने की आवश्यकता होगी।

add_action( 'edit_form_after_title', 'move_excerpt_meta_box' );
function move_excerpt_meta_box( $post ) {
    if ( post_type_supports( $post->post_type, 'excerpt' ) ) {
        remove_meta_box( 'postexcerpt', $post->post_type, 'normal' ); ?>
        <h2 style="padding: 20px 0 0;">Excerpt</h2>
        <?php post_excerpt_meta_box( $post );
    }
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.