Mover el meta box del extracto al editor de contenido anterior

11

Encontré un enlace de WordPress llamado " edit_form_after_title "para agregar un cuadro de texto después del título.

¿Cómo puedo usar este gancho para mostrar el extracto después del título al crear una nueva publicación?

    
pregunta Abouasy 11.03.2014 - 09:29

4 respuestas

7

Es simple, simplemente anule el registro del cuadro postexcerpt primero y luego agregue otro en la parte superior.

Aquí está mi código

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

add_action('edit_form_after_title', 'post_excerpt_meta_box');
    
respondido por el OzzyCzech 19.06.2014 - 12:56
4

He adaptado desde aquí: enlace

/* -----------------------------------------
 * 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' );
    
respondido por el Lea Cohen 20.11.2014 - 23:40
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');

De esta manera, puedes agregar exactamente un cuadro de extracto como quieras. Pero es importante eliminar la caja original. De lo contrario, no podrá guardar el extracto en la nueva casilla.

    
respondido por el Jørgen Rudolph Låker 15.11.2014 - 11:43
0

Esta respuesta es similar a la que @OzzyCzech publicó, pero es más universal y agrega un encabezado al cuadro de extracto. Una desventaja de este método es que no puede ocultar el cuadro de extracto a través de Opciones de pantalla ... en ese caso, tendría que usar la respuesta de @ 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 );
    }
}
    
respondido por el David 27.02.2016 - 21:34

Lea otras preguntas en las etiquetas