添加新用户时是否添加站点名称作为前缀?多站点

时间:2018-10-25 作者:joq3

我有一个多站点网络,每个站点的管理员都可以向其站点添加用户。我的问题是,如果他们选择相同的用户名,它将不起作用。

所以我在想,是否可以用前缀保存用户名字段。假设管理员添加了一个名为johndoe 到名为mysite 则用户应另存为mysite-johndoe. 这有可能实现吗?

我说的是用户->在后端添加新用户。

希望有办法做到这一点!使用PHP或jQuery?

2 个回复
SO网友:Edgar Rodriguez

我注意到我们的朋友共享的代码有一个错误。添加前缀两次。

我共享了其他代码并解决了此错误。

<?php


add_filter( \'pre_user_login\', \'sneakily_add_prefix_to_username\' );

function sneakily_add_prefix_to_username( $username ) {
    if ( ! current_user_can( \'manage_network\' ) ) {
        $blog_id = get_current_blog_id();
        $blog_details = get_blog_details( $blog_id );
        $sanitized_path = str_replace( \'/\', \'\', get_blog_details()->path );
        //error_log($sanitized_path);
        if ( $sanitized_path != \'\') {
            if(false === stripos($username, $sanitized_path)) {
                return $sanitized_path . \'-\' . $username;
            } else {
                return $username;
            }
        } else {
            $domain_parts = explode( \'.\', $blog_details->domain );
            if ( is_array( $domain_parts ) ) {
                $sanitized_subdomain = sanitize_user( $domain_parts[0], true );
                //error_log($sanitized_subdomain);
                if ( $sanitized_subdomain != \'\' ) {
                    if(false === stripos($username, $sanitized_subdomain)) {
                        return $sanitized_subdomain . \'-\' . $username;
                    } else {
                        return $username;
                    }
                }
            }
        }
    }
    return $username;
}

SO网友:Nikolay

我不确定他们是否会喜欢这个前缀,也许他们更愿意使用一个未使用的新用户名。但在这里,我是按照你的意愿做的。它要么采用站点的路径,要么采用子域的第一部分,因此它适用于这两种类型的多站点。它影响非超级管理员用户创建的用户。

add_filter( \'pre_user_login\', \'sneakily_add_prefix_to_username\' );

function sneakily_add_prefix_to_username( $username ) {
    if ( ! current_user_can( \'manage_network\' ) ) {
        $blog_id = get_current_blog_id();
        $blog_details = get_blog_details( $blog_id );
        $sanitized_path = sanitize_user( $blog_details->path, true );
        if ( $sanitized_path != \'\' ) {
            return $sanitized_path . \'-\' . $username;
        } else {
            $domain_parts = explode( \'.\', $blog_details->domain );
            if ( is_array( $domain_parts ) ) {
                $sanitized_subdomain = sanitize_user( $domain_parts[0], true );
                if ( $sanitized_subdomain != \'\' ) {
                    return $sanitized_subdomain . \'-\' . $username;
                }
            }
        }
    }
    return $username;
}

结束

相关推荐

更改WordPress MultiSite中媒体上载文件夹的路径

有人知道如何删除/sites/#blog_id/ 从多站点媒体路径?我们在main中上传了所有图像/public_html/images/ 当它连接到媒体库时,由于WPMU广告,子域上的所有图像都会被破坏/sites/#blog_id/ 为每个子域单独设置。这就产生了在不同的博客中使用相同股票图像的问题。我正在寻找一个解决方案,使所有上传的图像存储在一个地方,并可以从任何子博客平等访问。

添加新用户时是否添加站点名称作为前缀?多站点 - 小码农CODE - 行之有效找到问题解决它

添加新用户时是否添加站点名称作为前缀?多站点

时间:2018-10-25 作者:joq3

我有一个多站点网络,每个站点的管理员都可以向其站点添加用户。我的问题是,如果他们选择相同的用户名,它将不起作用。

所以我在想,是否可以用前缀保存用户名字段。假设管理员添加了一个名为johndoe 到名为mysite 则用户应另存为mysite-johndoe. 这有可能实现吗?

我说的是用户->在后端添加新用户。

希望有办法做到这一点!使用PHP或jQuery?

2 个回复
SO网友:Edgar Rodriguez

我注意到我们的朋友共享的代码有一个错误。添加前缀两次。

我共享了其他代码并解决了此错误。

<?php


add_filter( \'pre_user_login\', \'sneakily_add_prefix_to_username\' );

function sneakily_add_prefix_to_username( $username ) {
    if ( ! current_user_can( \'manage_network\' ) ) {
        $blog_id = get_current_blog_id();
        $blog_details = get_blog_details( $blog_id );
        $sanitized_path = str_replace( \'/\', \'\', get_blog_details()->path );
        //error_log($sanitized_path);
        if ( $sanitized_path != \'\') {
            if(false === stripos($username, $sanitized_path)) {
                return $sanitized_path . \'-\' . $username;
            } else {
                return $username;
            }
        } else {
            $domain_parts = explode( \'.\', $blog_details->domain );
            if ( is_array( $domain_parts ) ) {
                $sanitized_subdomain = sanitize_user( $domain_parts[0], true );
                //error_log($sanitized_subdomain);
                if ( $sanitized_subdomain != \'\' ) {
                    if(false === stripos($username, $sanitized_subdomain)) {
                        return $sanitized_subdomain . \'-\' . $username;
                    } else {
                        return $username;
                    }
                }
            }
        }
    }
    return $username;
}

SO网友:Nikolay

我不确定他们是否会喜欢这个前缀,也许他们更愿意使用一个未使用的新用户名。但在这里,我是按照你的意愿做的。它要么采用站点的路径,要么采用子域的第一部分,因此它适用于这两种类型的多站点。它影响非超级管理员用户创建的用户。

add_filter( \'pre_user_login\', \'sneakily_add_prefix_to_username\' );

function sneakily_add_prefix_to_username( $username ) {
    if ( ! current_user_can( \'manage_network\' ) ) {
        $blog_id = get_current_blog_id();
        $blog_details = get_blog_details( $blog_id );
        $sanitized_path = sanitize_user( $blog_details->path, true );
        if ( $sanitized_path != \'\' ) {
            return $sanitized_path . \'-\' . $username;
        } else {
            $domain_parts = explode( \'.\', $blog_details->domain );
            if ( is_array( $domain_parts ) ) {
                $sanitized_subdomain = sanitize_user( $domain_parts[0], true );
                if ( $sanitized_subdomain != \'\' ) {
                    return $sanitized_subdomain . \'-\' . $username;
                }
            }
        }
    }
    return $username;
}