Ich habe einen seltsamen Fehler oder bin möglicherweise nicht in der Lage, dieses Problem anzugehen. Ich baue ein Plugin für Multisite. Wenn use is_admin()
ist, funktioniert mein Plugin einwandfrei, aber wenn ich is_super_admin
verwende, zeigt es mir diesen Fehler Fatal error: Call to undefined function wp_get_current_user()
. Ich habe meine Suche durchgeführt, konnte aber keine Lösung finden.
Mein Code ist das
if(!is_super_admin()){
add_action('widgets_init','my_unregister_widdget');
function my_unregister_widgets() {
unregister_widget( 'WP_Widget_Pages' );
unregister_widget( 'WP_Widget_Calendar' );
}
}
Ich habe diese Frage gesehen, aber sie hilft mir nicht.
wp_get_current_user()
ist eine steckbare Funktion und noch nicht verfügbar, wenn Ihr Plugin enthalten ist. Sie müssen auf die Aktion plugins_loaded
warten:
Beispiel:
add_action( 'plugins_loaded', 'wpse_92517_init' );
function wpse_92517_init()
{
if(!is_super_admin())
add_action('widgets_init','my_unregister_widget');
}
function my_unregister_widgets() {
unregister_widget( 'WP_Widget_Pages' );
unregister_widget( 'WP_Widget_Calendar' );
}
Oder verschieben Sie den Haken in die Widget-Funktion:
add_action( 'widgets_init', 'my_unregister_widget' );
function my_unregister_widgets()
{
if ( is_super_admin() )
return;
// not super admin
unregister_widget( 'WP_Widget_Pages' );
unregister_widget( 'WP_Widget_Calendar' );
}