检查用户名是否不存在

时间:2015-04-03 作者:Interactive

我有一个通过导入用户的脚本。csv文件
脚本检查用户是否存在,如果存在,则更新其元数据
如果用户确实存在,但“状态”字段包含“已存档”一词,则应删除该用户
如果以上都不是真的,则为新用户并添加到用户列表中。

所以剧本是这样的:

foreach ($data as $gebruiker){
    $username = $gebruiker[\'username\'];
    if ( username_exists( $username ) && $gebruiker[\'status\'] == \'published\' ){
        $user = get_user_by( \'login\', $username);
        update_user_meta( $user->ID, \'import_1\', $gebruiker[\'email\'] );
    }elseif(username_exists( $username ) && $gebruiker[\'status\'] == \'archived\'){
        require_once(ABSPATH.\'wp-admin/includes/user.php\' );
        $user = get_user_by( \'login\', $username);
        wp_delete_user( $user->ID );
    }else{
        $users = wp_insert_user(
        array( 
        \'user_login\'    =>  $gebruiker[\'username\'],
        \'user_pass\'     =>  $gebruiker[\'password\'],
        \'first_name\'    =>  $gebruiker[\'first_name\'],
        \'last_name\'     =>  $gebruiker[\'last_name\'],
        \'user_email\'    =>  $gebruiker[\'email\'],
        \'display_name\'  =>  $gebruiker[\'first_name\'] . \' \' . $gebruiker[\'last_name\'],
        \'nickname\'      =>  $gebruiker[\'first_name\'] . \'\' . $gebruiker[\'last_name\'],
        \'role\'          =>  \'subscriber\'
        )                       
    );
    foreach ($data as $update_user) {
        update_user_meta( $users, \'import_1\', $update_user[\'first_name\'] );
        update_user_meta( $users, \'import_2\', $update_user[\'last_name\'] );
        update_user_meta( $users, \'status\', \'published\' );
    }
}
问题是我不知道如何检查用户是否不存在
因为现在的方式是先删除用户get,然后再添加。

从逻辑上讲,我应该首先检查用户是否存在,然后更新其数据
之后,如果用户不存在,我应该添加该用户。
最后,我应该删除所有具有状态的用户archived.

我该如何做这样的事情:
if ( ! username_exists( $username ) )

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

修好了。其实很简单。

我将删除用户get的if部分移到了脚本的底部。

foreach ($data as $gebruiker){
    $username = $gebruiker[\'username\'];
    if ( username_exists( $username ) && $gebruiker[\'status\'] == \'published\' ){
        $user = get_user_by( \'login\', $username);
        update_user_meta( $user->ID, \'import_1\', $gebruiker[\'email\'] );
    }else{
        $users = wp_insert_user(
        array( 
            \'user_login\'    =>  $gebruiker[\'username\'],
            \'user_pass\'     =>  $gebruiker[\'password\'],
            \'first_name\'    =>  $gebruiker[\'first_name\'],
            \'last_name\'     =>  $gebruiker[\'last_name\'],
            \'user_email\'    =>  $gebruiker[\'email\'],
            \'display_name\'  =>  $gebruiker[\'first_name\'] . \' \' . $gebruiker[\'last_name\'],
            \'nickname\'      =>  $gebruiker[\'first_name\'] . \'\' . $gebruiker[\'last_name\'],
            \'role\'          =>  \'subscriber\'
             )                      
        );
        foreach ($data as $update_user) {
            update_user_meta( $users, \'import_1\', $update_user[\'first_name\'] );
            update_user_meta( $users, \'import_2\', $update_user[\'last_name\'] );
        }
    }if(username_exists( $username ) && $gebruiker[\'status\'] == \'archived\'){
        require_once(ABSPATH.\'wp-admin/includes/user.php\' );
        $user = get_user_by( \'login\', $username);
        wp_delete_user( $user->ID );
    }

结束

相关推荐

如何从函数.php中获取php文件中的代码

我正在用wordpress建立一个网站,使用子主题。主主题文件夹中有一个名为entry的文件。php这就是我需要在本文底部添加一些php的地方。我不想接触父主题文件,以避免更新主题时出现问题。How can I embed/insert PHP code in that specific file/ part of the code?这是使用过滤器完成的吗?嵌入我一直在谷歌上搜索,但我不知道我是否使用了正确的关键词来搜索。我正在学习php,这将非常有帮助:)更多详细信息:理想情况下,我希望在“/节”的结尾