在wp_create_user时设置用户ID

时间:2014-02-27 作者:LPH

我想在WordPress用户表中添加一个新用户。wp\\u create\\u user的代码工作正常,但它将用户增量添加到用户表中的下一个可用ID。

相反I want to create the user and assign it to a particular user ID. 用户ID已经可用(外部),我希望输入到WordPress数据库的ID与外部ID匹配。

$user_login = $username ;
$pas1 = $email_address;
$user_email = $email_address;

wp_create_user( $user_login, $pas1, $user_email );
$user = new WP_User($user_id);
$user->set_role(\'editor\'); 
例如,我想知道如何在wp\\u create\\u user时设置已知的$user\\u id。

2 个回复
SO网友:soulseekah

wp_insert_user 不会使用设置的ID创建不存在的用户,它将返回一个错误。

要做到这一点,首先要做:

global $wpdb;

$wpdb->insert( $wpdb->users, array( \'ID\' => 136166 ) );

wp_insert_user( ... );
上面的代码将首先创建一个具有设置ID的空用户行(如果ID已经存在,则很难失败,主键的条目将重复),然后可以根据需要使用API修改该行。

SO网友:s_ha_dum

不适用于wp_create_user(). 检查来源:

1518  function wp_create_user($username, $password, $email = \'\') {
1519          $user_login = wp_slash( $username );
1520          $user_email = wp_slash( $email    );
1521          $user_pass = $password;
1522  
1523          $userdata = compact(\'user_login\', \'user_email\', \'user_pass\');
1524          return wp_insert_user($userdata);
1525  }

https://core.trac.wordpress.org/browser/tags/3.8.1/src/wp-includes/user.php#L1518

wp_create_user 不接受ID参数。但是,请查看wp_create_user(). wp_insert_user() 尊重an ID argument.

缺点是它会用相同的ID覆盖现有用户,因此需要编写逻辑来处理这种情况。

结束

相关推荐

Plugins_url函数混合了系统路径和URL

在我的WordPress小部件中,我使用以下代码:wp_register_script(\'jquery-ui.widget\', plugins_url(\'assets/js/jquery-ui-1.9.2.widget.js\', dirname( __FILE__ ))); 不幸的是,代码给了我一个无效的URL,它与我的系统路径混合在一起:http://test.dev/wp-content/plugins/C:/projects/wordpress/plugins/assets/js/