it-swarm-es.com

Establecer las opciones predeterminadas de la pantalla de administración y el orden de Metabox

Estoy buscando desesperadamente alguna forma (de cualquier manera) para establecer las "opciones de pantalla" predeterminadas y el orden metabox a través del archivo functions.php. ¿Alguien tiene alguna ayuda que pueda proporcionar aquí?

28
NetConstructor.com

Establecer el orden de los meta-cuadros en las páginas de edición posterior

Deberá eliminar las meta cajas y agregarlas nuevamente en el orden que desee.

Para deshabilitar los meta box: (personalice según sus necesidades, mire la identificación de metabox en el código html para saber qué nombre debe usar como primer parámetro de las funciones)

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' );

Después de eliminarlos, puede usar la función add_meta_box para agregarlos en nuevas posiciones: http://codex.wordpress.org/Function_Reference/add_meta_box . El orden de los meta-cuadros depende del orden en el que se llama la función add_meta_box. Por ejemplo: con el siguiente fragmento de código, el cuadro de meta de comentarios estará antes del cuadro de meta de campos personalizados.

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' );

Es posible que desee ver el archivo wp-admin/edit-form-advanced.php

Configuración del título de las columnas que se muestran en la página de la lista de entradas

Debe usar el filtro administrar _ {$ post_type} _posts_columns. Por ejemplo: el siguiente fragmento eliminará la columna de comentarios.

function my_remove_columns( $posts_columns ) {
    unset( $posts_columns['comments'] );

    return $posts_columns;
}

add_filter( 'manage_post_posts_columns', 'my_remove_columns' );

Configuración de los resultados predeterminados que se mostrarán en la página de la lista de publicaciones

Use los filtros 'editar _ {$ post_type} _per_page' y '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' );

Para apuntar a un tipo de publicación específica:

  • use add_filter( 'edit_{post type}_per_page', 'my_edit_post_per_page' ); por ejemplo add_filter( 'edit_post_per_page', 'my_edit_post_per_page' ); para publicaciones, add_filter( 'edit_page_per_page', 'my_edit_post_per_page' ); para páginas.

  • o usa una condición dentro de tu función. p.ej.:

    function 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;
    
23
sorich87

En el siguiente ejemplo, reemplaza {CPT} con el nombre de tipo de publicación, como post, page, book, event, imaginary, foobar... Así que si tienes un tipo de publicación llamado event, necesitarás agregar un filtro para 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',
            )
        ),
    );
}

Notas:

  • Junto con normal, también puede tener side y advanced
  • Los valores son ID de div. Separados por comas, puede capturar al ver el código fuente de la página o puede adivinar
  • Cualquier metabox existente que no esté incluido en su pedido personalizado se agregará automáticamente al final de su lista.
9
Nabil Kadimi