插入“New User”并一次性更新/设置元数据

时间:2012-02-10 作者:Rob

wordpress函数wp\\u insert\\u user似乎没有设置(覆盖)我提供的输入。(文档显示您不能)尝试使用:wp\\u insert\\u user使用返回的userID也不起作用。

当然,我可以自己进行查询,但可能我忘记了使用现有函数插入此数据的选项。

$userdata = array(
    //user login
    \'user_pass\'  => esc_attr( $_POST[\'pass\'] ),
    \'user_login\' => esc_attr( $_POST[\'user\'] ),
    \'user_email\' => esc_attr( $_POST[\'email\'] ),

    //user meta
    \'rich_editing\' => false,
    \'comment_shortcuts\' => false,
    \'show_admin_bar_front\' => false,        
    \'wp_user_level\' => 0, 
    \'wp_capabilities\' => \'a:1:{s:10:"subscriber";s:1:"1";}\' 
);

     $new_user_user_id = wp_insert_user( $userdata );   

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

你最好的做法是user_register 并从那里更新您想要设置的用户选项。以下是为新用户禁用管理栏的示例:

add_action("user_register", "sc_set_user_admin_bar_false_by_default", 10, 1);
function sc_set_user_admin_bar_false_by_default($user_id) {
    update_user_meta( $user_id, \'show_admin_bar_front\', \'false\' );
    update_user_meta( $user_id, \'show_admin_bar_admin\', \'false\' );
}

SO网友:mor7ifer

这个codex page for wp_insert_user() 列出它接受的所有值。comment_shortcuts, 和show_admin_bar_front 都需要设置update_user_meta().

处理wp_user_levelwp_capabilities 您需要使用WP_User.

您可以使用$new_user_user_id (长变量名称lol)用于WP_Userupdate_user_meta()

结束

相关推荐