Existe-t-il une fonction permettant d’obtenir une liste des Meta Box enregistrées et de les supprimer? Je vois qu'il existe une méthode pour ajouter et supprimer.
http://codex.wordpress.org/Function_Reference/remove_meta_box
Pas vraiment, mais vous pouvez définir le vôtre. Toutes les méta-boîtes sont stockées dans la variable globale $wp_meta_boxes
qui est un tableau multidimensionnel.
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];
}
Ce tableau montrera toutes les boîtes de méta enregistrées pour un écran spécifique et un contexte spécifique. Vous pouvez également explorer plus en profondeur, car ce tableau est également un tableau multidimensionnel qui sépare les boîtes méta par priorité et par id.
Supposons donc que vous souhaitiez obtenir un tableau contenant toutes les boîtes de méta de priorité "normale" sur le tableau de bord d'administration. Vous appelleriez ce qui suit:
$dashboard_boxes = get_meta_boxes( 'dashboard', 'normal' );
C'est identique au global array $wp_meta_boxes['dashboard']['normal']
et c'est aussi un tableau multidimensionnel.
Disons que vous voulez supprimer un tas de boîtes de méta. La fonction ci-dessus peut être légèrement modifiée pour 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 vous souhaitez supprimer, par exemple, le widget de liens entrants du tableau de bord, appelez:
remove_meta_boxes( 'dashboard', 'normal', 'core', 'dashboard_incoming_links' );
Sur le tableau de bord WordPress, des boîtes de méta sont affichées. Il y a une colonne normale et une colonne latérale.
Je peux obtenir une liste de méta-boîtes enregistrées et les supprimer du tableau de bord en utilisant le code suivant:
// 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');
Utilisez simplement print_r($wp_meta_boxes);
pour afficher une liste des boîtes de méta enregistrées.