web-dev-qa-db-fra.com

Comment supprimer l'aide contextuelle sur WP 3.3.2?

Comment supprimer l'aide contextuelle et son onglet complètement de Wordpress v3.3.2? Le add_filter pour l'aide contextuelle qui fonctionnait comme à merveille sur l'ancienne version ne fonctionne plus maintenant.

Mise à jour: (solution découpée de Chip Bennett)

function wpse50787_remove_contextual_help() {
    $screen = get_current_screen();
    $screen->remove_help_tabs();
}
add_action( 'admin_head', 'wpse50787_remove_contextual_help' );
1
Sean Lee

Depuis WordPress 3.3, des onglets d’aide contextuelle sont ajoutés via l’objet Screen , à l’aide de add_help_tab() . La structure de base est la suivante:

<?php
$screen = get_current_screen();
$screen->add_help_tab( array(
    'id'      => 'sfc-base',
    'title'   => __('Connecting to Facebook', 'sfc'),
    'content' => "HTML for help content",
) );
?>

Si vous connaissez le $id d'un onglet d'aide spécifique, vous pouvez le supprimer à l'aide de remove_help_tab():

<?php
$screen = get_current_screen();
$screen->remove_help_tab( $id );
?>

Si vous souhaitez supprimer tous les onglets d'aide de l'écran actuel, utilisez remove_help_tabs():

<?php
$screen = get_current_screen();
$screen->remove_help_tabs();
?>

Vous avez juste besoin d'insérer cela dans un rappel relié à admin_head, et vous êtes prêt à partir:

<?php
function wpse50787_remove_contextual_help() {
    $screen = get_current_screen();
    $screen->remove_help_tabs();
}
add_action( 'admin_head', 'wpse50787_remove_contextual_help' );
?>

Certaines de ces fonctions ne sont pas encore bien documentées dans le Codex. Essayez la source directement; ils sont définis dans /wp-admin/includes/screen.php .

Caveat

Comme écrit, ces fonctions agiront globalement . La plupart des utilisateurs voudront cibler une page spécifique à un thème ou à un plug-in pour faire quelque chose comme ça. Si vous souhaitez cibler les écrans d'un thème spécifique, vous devez utiliser le crochet spécifique au thème, par exemple:

<?php
global $wpse50787_options_page;
$wpse50787_options_page = add_theme_page( $args );
?>

Notez qu'à ce stade, vous pouvez également connecter à l'action load pour votre hook spécifique à la page, afin d'exécuter votre rappel d'aide contextuelle:

<?php
global $wpse50787_options_page;
$wpse50787_options_page = add_theme_page( $args );

// Load contextual help
add_action( 'load-' . $wpse50787_options_page, 'wpse50787_remove_contextual_help' );
?>

Ensuite, recherchez ce point dans votre rappel:

<?php
function wpse50787_remove_contextual_help() {
    // Get Theme-specific page hook
    global $wpse50787_options_page;
    // Get current screen
    $screen = get_current_screen();
    // Determine if we're on our Theme-specific page
    if ( $wpse50787_options_page != $screen->id ) {
        return;
    } else {
        $screen->remove_help_tabs();
    }
}
?>
5
Chip Bennett