Eroare fatală: Apel către funcția nedefinită wp_get_current_user()

27 mar. 2013, 08:22:22
Vizualizări: 13.6K
Voturi: 4

Am o eroare ciudată sau poate nu am suficientă experiență pentru a rezolva această problemă. Lucrez la un plugin pentru WordPress Multisite. Când folosesc is_admin(), plugin-ul meu funcționează corect, dar când încerc să folosesc is_super_admin primesc această eroare Eroare fatală: Apel către funcția nedefinită wp_get_current_user(). Am căutat soluții dar nu am găsit nimic care să mă ajute.

Codul meu arată astfel:

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

Am văzut această întrebare dar nu m-a ajutat.

1
Comentarii

Doar o observație: is_admin() verifică dacă vă aflați în panoul de administrare sau pe front-end, nu are nicio legătură cu faptul că utilizatorul este "admin". Spre deosebire de is_super_admin(), care într-adevăr verifică rolul utilizatorului. De asemenea, vă rugăm să nu postați aceeași întrebare pe mai multe site-uri Stack diferite.

brasofilo brasofilo
27 mar. 2013 14:11:05
Toate răspunsurile la întrebare 1
0

wp_get_current_user() este o funcție pluggable și nu este încă disponibilă atunci când plugin-ul tău este inclus. Trebuie să aștepți acțiunea plugins_loaded:

Exemplu:

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

Sau mută verificarea în funcția widget-ului:

add_action( 'widgets_init', 'my_unregister_widget' );

function my_unregister_widgets() 
{
    if ( is_super_admin() )
        return;

    // nu este super admin
    unregister_widget( 'WP_Widget_Pages' );
    unregister_widget( 'WP_Widget_Calendar' );
}
27 mar. 2013 09:24:12