Probleme beim Entfernen der Admin-Leiste

Ich versuche, die Admin-Leiste von einem Theme-Front-End eines Theme zu entfernen.

Ich habe den folgenden Codeblock gefunden:

add_filter( 'show_admin_bar', '__return_false' ); remove_action( 'personal_options', '_admin_bar_preferences' ); 

Was gut funktioniert. Ich wollte jedoch eine Auswahl für den Benutzer hinzufügen, damit ich meinem Standardthema einen permanenten Codeblock hinzufügen und Benutzern erlauben kann, die Adminleiste ein- und auszuschalten.

Ich habe den Toggle im Admin-Bereich erfolgreich hinzugefügt und den Wert erfolgreich zurückgerufen, aber wenn ich auf den Wert teste, um den Callback der Admin-Leiste zu steuern, geht die Admin-Leiste, aber das CSS auf das HTML-Element ( margin-top: 28px !important; ) bleibt und hinterlässt eine 28px Lücke in der Spitze meines Themas.

Hier ist der Codeblock, den ich verwende, um den Wert zurückzurufen und entsprechend zu reagieren:

 function block_admin(){ $show = get_option('admin_bar_'); $show = $show['admin_bar_toggle']; if (!$show || $show != 'on'){ add_filter( 'show_admin_bar', '__return_false' ); remove_action( 'personal_options', '_admin_bar_preferences' ); } } add_action('init', 'block_admin'); 

Vorschlag

Bei Bedarf wird meine benutzerdefinierte Option (mit register_setting ) erst initialisiert, wenn der Hook admin_menu gestartet wird, während der block_admin bei init gestartet wird. Ich glaube jedoch nicht, dass dies das Problem ist, da ich nicht glaube, dass get_option von der registrierten Einstellung abhängt, sondern von der Option, die in der database vorhanden ist (oder nicht).

Solutions Collecting From Web of "Probleme beim Entfernen der Admin-Leiste"

Es gibt bereits eine Benutzer-Option, um die Admin-Leiste in den neuesten WordPress-Versionen zu deaktivieren. Es kann in den Benutzerprofileinstellungen gefunden werden:

… / wp-admin / profile.php (klicke auf deinen Namen nach dem Einloggen)

show_admin_bar(false) du versucht, show_admin_bar(false) ? Aus dem schnellen Blick auf Code sollte Admin-Leiste zu töten und es ist sicher, sehr früh zu starten (tatsächlich auf Last).

Schon der Start der function triggerse das Problem

  function block_admin(){ $show = get_option('admin_bar_'); $show = $show['admin_bar_toggle']; fb::log($show,'shoe'); if (!$show || $show != 'on'){ add_filter( 'show_admin_bar', '__return_false' ); remove_action( 'personal_options', '_admin_bar_preferences' ); } } add_action('after_setup_theme','block_admin'); 

Haben Sie Ihre Einstellungen gespeichert, so dass sie in der database vorhanden sind?

Auch: Was passiert, wenn Sie das ändern:

 if ( ! $show || $show != 'on' ) { 

… zu diesem:

 if ( ! isset( $show ) || $show != 'on' ) { 

Nicht sicher, dass Sie übereinstimmen. Aber hier ist das Plugin für die Google-Admin-Leiste auf global. Schau doch mal rein 🙂

http://wordpress.org/extend/plugins/global-admin-bar-hide-or-remove/