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