wake-up-neo.net

So entfernen Sie die kontextbezogene Hilfe zu WP 3.3.2?

Wie entferne ich die kontextbezogene Hilfe und ihre Registerkarte vollständig aus Wordpress v3.3.2? Der add_filter für die kontextbezogene Hilfe, der in älteren Versionen wie ein Wunder wirkte, funktioniert jetzt nicht mehr.

Update: (gekürzte Lösung von 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

Seit WordPress 3.3 werden kontextbezogene Hilfe-Registerkarten über das Screen-Objekt hinzugefügt, wobei verwendet wird. add_help_tab() . Die Grundstruktur ist wie folgt:

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

Wenn Sie den $id einer bestimmten Hilferegisterkarte kennen, können Sie ihn mit remove_help_tab() entfernen:

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

Wenn Sie alleHilferegisterkarten aus dem aktuellen Bildschirm entfernen möchten, verwenden Sie remove_help_tabs():

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

Sie müssen das nur in einen Callback einbinden, der in admin_head eingebunden ist, und los geht's:

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

Einige dieser Funktionen sind im Codex noch nicht gut dokumentiert. Versuchen Sie es direkt mit source. Sie sind in /wp-admin/includes/screen.php definiert.

Vorbehalt

Wie geschrieben, werden diese Funktionen globalhandeln. Die meisten Benutzer möchten eine themen- oder pluginspezifische Seite aufrufen, um so etwas zu tun. Wenn Sie auf die Bildschirme eines bestimmten Themas abzielen möchten, müssen Sie den themenspezifischen Hook verwenden, z.

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

Beachten Sie, dass Sie an dieser Stelle auch die Aktion load für Ihren seitenspezifischen Hook einbinden können, um Ihren Kontext-Hilfe-Rückruf auszuführen:

<?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' );
?>

Fragen Sie dann in Ihrem Rückruf nach diesem Hook:

<?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