使用ADD_USER_TO_BLOG时出现错误“调用未定义的函数GET_USERDATA”

时间:2013-12-11 作者:Mahesh Budeti

我正在开发WordPress MU,并试图构建一个插件,将用户添加到多个站点。到目前为止,我们已经尽了一切努力来循环浏览网站。但是,当使用add\\u user\\u to\\u blog将用户分配到以下站点时,出现了错误,请参见下文。

将\\u user\\u添加到\\u blog($blogid、$amsuserid、$urole);

获取以下错误:

致命错误:在wp includes函数中调用未定义的函数get\\u userdata()。php在线181

如果禁用行“add\\u user\\u to\\u blog”,则不会出现错误。

此处的完整功能:

function amsAddUsertoSites()
{

    $siteslist=$_POST[\'updatesites\'];
    $urole=$_POST[\'setrole\'];
    $addtoallblogs=$_POST[\'allsites\'];
    $amsuserid=$_POST[\'userid\'];


      if($addtoallblogs) {
      //add_user_to_blog( $blogid, $user_id, "administrator" );
            $blogs = get_blogs();
            foreach($blogs as $blog=>$blogid)   
            {
                    add_user_to_blog( $blogid, $amsuserid,$urole );
            }

       }
       else {

       foreach($siteslist as $blog=>$blogid)   
            {
                    add_user_to_blog( $blogid, $amsuserid,$urole );
            }


       }

}

1 个回复
SO网友:fuxia

get_userdata() 是一个可插入的函数,您可以在wp-includes/pluggable.php. 这意味着,插件可以在加载插件时更早地声明它,而不会声明它。

当你看到wp-settings.php, 您可以看到加载顺序:

// Load active plugins.
foreach ( wp_get_active_and_valid_plugins() as $plugin )
    include_once( $plugin );
unset( $plugin );

// Load pluggable functions.
require( ABSPATH . WPINC . \'/pluggable.php\' );
require( ABSPATH . WPINC . \'/pluggable-deprecated.php\' );

// Set internal encoding.
wp_set_internal_encoding();

// Run wp_cache_postload() if object cache is enabled and the function exists.
if ( WP_CACHE && function_exists( \'wp_cache_postload\' ) )
    wp_cache_postload();

/**
 * Fires once activated plugins have loaded.
 *
 * Pluggable functions are also available at this point in the loading order.
 *
 * @since 1.5.0
 */
do_action( \'plugins_loaded\' );
至少等待plugins_loaded, 在你打电话之前add_action()add_filter().

结束

相关推荐

Copy Root Multisite Site

我在WordPress中创建了一个多站点安装,位于example.com 网站位于example.com/site1, example.com/site2 等是否可以创建example.com 在example.com/site3?Blog Copier 和NS cloner 由于某种原因,不允许您创建根站点的副本。这背后的技术限制是什么?