致命错误:调用未定义的函数wp_get_Current_User()

时间:2013-03-27 作者:Husnain

我有一些奇怪的错误,或者可能是我没有处理这个问题的技能。我正在为多站点构建一个插件。何时使用is_admin(), 我的插件工作正常,但当我使用is_super_admin 它显示了这个错误Fatal error: Call to undefined function wp_get_current_user(). 我做了搜索,但找不到任何解决方案。

我的代码是

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\' );
    }
}
我看到了这个question 但这对我没有帮助。

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

wp_get_current_user() 是一个可插拔功能,但当您的插件包含在内时,还不可用。你必须等待行动plugins_loaded:

示例:

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\' );
}
或将支票移至小部件功能:

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

结束