抜粋メタボックスをコンテンツエディターの上に移動


11

edit_form_after_titleタイトルの後にテキストボックスを追加する「」というWordPressフックを見つけました。

このフックを使用して、新しい投稿の作成中にタイトルの後に抜粋を表示するにはどうすればよいですか?

回答:


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

この回答は@OzzyCzechが投稿した回答に似ていますが、より一般的で、抜粋ボックスにヘッダーが追加されます。この方法の欠点の1つは、画面オプションを使用して抜粋ボックスを非表示にできないことです。その場合は、@ 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 );
    }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.