Estoy buscando desesperadamente alguna forma (de cualquier manera) de establecer las "opciones de pantalla" predeterminadas y el orden de metabox a través del archivo functions.php. ¿Alguien tiene alguna ayuda que puedan proporcionar aquí?
Estoy buscando desesperadamente alguna forma (de cualquier manera) de establecer las "opciones de pantalla" predeterminadas y el orden de metabox a través del archivo functions.php. ¿Alguien tiene alguna ayuda que puedan proporcionar aquí?
Respuestas:
Deberá eliminar los meta cuadros y agregarlos nuevamente en el orden que desee.
Para deshabilitar los meta cuadros: (personalícelos según sus necesidades, mire el id del 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 que llame a la función add_meta_box. Por ejemplo: con el siguiente fragmento de código, el cuadro meta de comentarios estará antes del cuadro 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
Debe utilizar el filtro de gestión _ {$ 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' );
Use los filtros 'edit _ {$ 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 orientar un tipo de publicación específico:
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 use una condición dentro de su 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;
En el siguiente ejemplo, reemplazar {CPT}con el nombre del tipo de correos, como post, page, book, event, imaginary, foobar... Así que si usted tiene un tipo de correos nombrada event, que tendría que añadir 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',
)
),
);
}
normal, también puede tener sideyadvanced{CPT}nomenclatura; para aclarar, si tiene un tipo de publicación llamado event, necesitará agregar un filtro para get_user_option_meta-box-order_event.