Existe-t-il une fonction pour obtenir une liste des Meta Box enregistrées et les supprimer? Je vois qu'il existe une méthode pour ajouter et supprimer.
http://codex.wordpress.org/Function_Reference/remove_meta_box
Existe-t-il une fonction pour obtenir une liste des Meta Box enregistrées et les supprimer? Je vois qu'il existe une méthode pour ajouter et supprimer.
http://codex.wordpress.org/Function_Reference/remove_meta_box
Réponses:
Pas vraiment, mais vous pouvez définir le vôtre. Toutes les métadonnées 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 affichera toutes les métadonnées enregistrées pour un écran spécifique et un contexte spécifique. Vous pouvez également approfondir davantage car ce tableau est également un tableau multidimensionnel qui sépare les métadonnées par priorité et par identifiant.
Supposons donc que vous souhaitiez obtenir un tableau contenant toutes les métadonnées dont la priorité est "normale" sur le tableau de bord d'administration. Vous appelleriez comme suit:
$dashboard_boxes = get_meta_boxes( 'dashboard', 'normal' );
Il est identique au tableau global$wp_meta_boxes['dashboard']['normal']
et il s'agit également d'un tableau multidimensionnel.
Disons que vous souhaitez supprimer un tas de métadonnées. La fonction ci-dessus peut être légèrement modifiée pour bénéficier des avantages suivants:
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 vouliez supprimer, disons, le widget des liens entrants du tableau de bord, vous appelleriez:
remove_meta_boxes( 'dashboard', 'normal', 'core', 'dashboard_incoming_links' );
global
ne marche pas pour moi! Merci. wordpress.stackexchange.com/questions/318834/…
Sur le tableau de bord WordPress, des métadonnées s'affichent. Il y a une colonne normale et une colonne latérale.
Je peux obtenir une liste des métadonnées 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 voir une liste des méta-boîtes enregistrées.
print_r($wp_meta_boxes);