¿Existe una función para obtener una lista de Meta Boxes registradas y eliminarlas? Veo que hay un método para agregar y eliminar.
http://codex.wordpress.org/Function_Reference/remove_meta_box
¿Existe una función para obtener una lista de Meta Boxes registradas y eliminarlas? Veo que hay un método para agregar y eliminar.
http://codex.wordpress.org/Function_Reference/remove_meta_box
Respuestas:
En realidad no, pero puedes definir el tuyo. Todos los meta cuadros se almacenan en la variable global $wp_meta_boxes
que es una matriz multidimensional.
function get_meta_boxes( $screen = null, $context = 'advanced' ) {
global $wp_meta_boxes;
if ( empty( $screen ) )
$screen = get_current_screen();
elseif ( is_string( $screen ) )
$screen = convert_to_screen( $screen );
$page = $screen->id;
return $wp_meta_boxes[$page][$context];
}
Esta matriz mostrará todos los meta cuadros registrados para una pantalla específica y un contexto específico. También podría profundizar aún más porque esta matriz también es una matriz multidimensional que segrega meta cuadros por prioridad e id.
Entonces, supongamos que desea obtener una matriz que contenga todos los meta cuadros que son de prioridad "normal" en el Panel de administración. Llamarías a lo siguiente:
$dashboard_boxes = get_meta_boxes( 'dashboard', 'normal' );
Esto es idéntico al conjunto global$wp_meta_boxes['dashboard']['normal']
y también es un conjunto multidimensional.
Digamos que quieres eliminar un montón de meta cuadros. La función anterior se puede ajustar ligeramente para aprovechar que:
function remove_meta_boxes( $screen = null, $context = 'advanced', $priority = 'default', $id ) {
global $wp_meta_boxes;
if ( empty( $screen ) )
$screen = get_current_screen();
elseif ( is_string( $screen ) )
$screen = convert_to_screen( $screen );
$page = $screen->id;
unset( $wp_meta_boxes[$page][$context][$priority][$id] );
}
Si quisiera eliminar, digamos, el widget de enlaces entrantes del Panel, llamaría:
remove_meta_boxes( 'dashboard', 'normal', 'core', 'dashboard_incoming_links' );
global
no funciona para mí! Gracias. wordpress.stackexchange.com/questions/318834/…
En el Panel de WordPress, se muestran cuadros de meta. Hay una columna normal y una columna lateral.
Puedo obtener una lista de meta cuadros registrados y eliminarlos del tablero usando el siguiente código:
// Remove some non-sense meta boxes
function remove_dashboard_meta_boxes(){
global $wp_meta_boxes;
// Dashboard core widgets :: Left Column
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_incoming_links']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_recent_comments']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_plugins']);
unset($wp_meta_boxes['dashboard']['normal']['core']['dashboard_right_now']);
// Additional dashboard core widgets :: Right Column
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_recent_drafts']);
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_quick_press']);
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_primary']);
unset($wp_meta_boxes['dashboard']['side']['core']['dashboard_secondary']);
// Remove the welcome panel
update_user_meta(get_current_user_id(), 'show_welcome_panel', false);
}
add_action('wp_dashboard_setup', 'remove_dashboard_meta_boxes');
Solo use print_r($wp_meta_boxes);
para ver una lista de meta cuadros registrados.
print_r($wp_meta_boxes);