Di chuyển hộp meta trích dẫn sang trình chỉnh sửa nội dung trên


11

Tôi tìm thấy một hook WordPress có tên " edit_form_after_title" để thêm một hộp văn bản sau tiêu đề.

Làm cách nào tôi có thể sử dụng hook này để hiển thị đoạn trích sau tiêu đề trong khi tạo một bài đăng mới?

Câu trả lời:


7

Thật đơn giản, chỉ cần bỏ postexcerpthộp trước rồi thêm một hộp khác lên trên cùng.

Đây là mã của tôi

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

add_action('edit_form_after_title', 'post_excerpt_meta_box');

1
Xin chào +1 về điều đó, nhưng làm thế nào để bạn giải quyết kiểu dáng sau khi loại bỏ meta_box?
DVᴀᴅᴇʀ

6

Tôi thích nghi từ đây: /wordpress//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');

Bằng cách này, bạn có thể thêm chính xác một hộp trích dẫn tùy thích. Nhưng điều quan trọng là phải loại bỏ hộp ban đầu. Nếu không, bạn sẽ không thể lưu đoạn trích trong hộp mới.


1

Câu trả lời này tương tự như câu trả lời @OzzyC817, nhưng nó phổ biến hơn và nó thêm một tiêu đề vào hộp trích dẫn. Một nhược điểm của phương pháp này là bạn không thể ẩn hộp trích dẫn thông qua Tùy chọn màn hình ... trong trường hợp đó bạn cần sử dụng câu trả lời của @ lea-cohen.

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 );
    }
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.