wake-up-neo.com

Schwerwiegender Fehler: Aufruf der undefinierten Funktion wp_get_current_user ()

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.

2
Husnain

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' );
}
5
fuxia