Wie überschreibt man einen functionsaufruf in functions.php?

In functions.php eines Themas macht einen Aufruf von show_admin_bar(false) die Admin-Leiste im Frontend verbirgt:

 if (!is_admin()) { wp_deregister_style( 'bp-admin-bar' ); if ( function_exists( 'show_admin_bar' ) ) { show_admin_bar( false ); remove_action( 'bp_init', 'bp_core_load_buddybar_css' ); } } 

Ich möchte Admin-Leiste im Frontend für die admin Benutzer erscheinen. Um dies zu tun, habe ich den folgenden Code zu einem Plugin hinzugefügt:

 add_action('plugins_loaded', 'show_admin_bar_to_admins', 100); function show_admin_bar_to_admins() { if (current_user_can('manage_options')) { show_admin_bar(true); } } 

Aber dieser Anruf machte keinen Unterschied. Ich setze 100 als Prioritätswert, um diese function später aufzurufen als den Aufruf in functions.php . Aber es machte keinen Unterschied.

Gibt es eine Möglichkeit, einen functionsaufruf innerhalb eines Plugins auszuführen, der später als der Aufruf in der functions.php .

Solutions Collecting From Web of "Wie überschreibt man einen functionsaufruf in functions.php?"

Erstens: Dieses Thema macht es so falsch. Man sollte nicht einfache Aufrufe in functions.php-Dateien stopfen. Diese sollten eingewickelt und eingehakt werden. Am besten nach after_setup_theme() . Sie können den gleichen Haken versuchen.

Ich denke, der beste Weg, um die Admin-Leiste show_admin_bar oder auszublenden, besteht darin, sich in den show_admin_bar Filter show_admin_bar und die Bedingungen anzugeben, die Sie in der Filterfunktion benötigen:

 add_filter('show_admin_bar', 'ad_show_admin_bar'); function ad_show_admin_bar($show) { // show front-end admin bar for admins only if(current_user_can('manage_options')) { return true; } else { return false; } } 

Dadurch werden notwendige Skripts und Stile für die Admin-Leiste hinzugefügt.