博客吧目前在制作一个会员型的wordpress淘宝客主题,目前现在的带会员功能的wordpress淘客模板的会员注册、会员登陆功能都在前台,既然大家都在前台实现了注册登陆的功能,博客吧总不会还让访客绕几十圈到后台注册登陆吧!?本着能拿则拿来主义,先是百度搜索是否有实现wordpess前台注册功能的代码公布,最终得到露兜博客(好博客,多多学习)的相关代码。
实现前台注册操作步骤:
- 复制当前主题目录下的page.php文件并命名为register.php,在第一行<?php后添加:
1 2 3
/* Template Name:会员注册 */
如果有其它注释,先删除
- 紧接着在*/后添加以下函数代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
if( !empty($_POST['reg']) ) { $error = ''; $sanitized_user_login = sanitize_user( $_POST['user_login'] ); $user_email = apply_filters( 'user_registration_email', $_POST['user_email'] ); // Check the username if ( $sanitized_user_login == '' ) { $error .= '<strong>错误</strong>:请输入用户名。<br />'; } elseif ( ! validate_username( $user_login ) ) { $error .= '<strong>错误</strong>:此用户名包含无效字符,请输入有效的用户名<br />。'; $sanitized_user_login = ''; } elseif ( username_exists( $sanitized_user_login ) ) { $error .= '<strong>错误</strong>:该用户名已被注册,请再选择一个。<br />'; } // Check the e-mail address if ( $user_email == '' ) { $error .= '<strong>错误</strong>:请填写电子邮件地址。<br />'; } elseif ( ! is_email( $user_email ) ) { $error .= '<strong>错误</strong>:电子邮件地址不正确。!<br />'; $user_email = ''; } elseif ( email_exists( $user_email ) ) { $error .= '<strong>错误</strong>:该电子邮件地址已经被注册,请换一个。<br />'; } // Check the password if(strlen($_POST['user_pass']) < 6) $error .= '<strong>错误</strong>:密码长度至少6位!<br />'; elseif($_POST['user_pass'] != $_POST['user_pass2']) $error .= '<strong>错误</strong>:两次输入的密码必须一致!<br />'; if($error == '') { $user_id = wp_create_user( $sanitized_user_login, $_POST['user_pass'], $user_email ); if ( ! $user_id ) { $error .= sprintf( '<strong>错误</strong>:无法完成您的注册请求... 请联系<a href=\"mailto:%s\">管理员</a>!<br />', get_option( 'admin_email' ) ); } else if (!is_user_logged_in()) { $user = get_userdatabylogin($sanitized_user_login); $user_id = $user->ID; // 自动登录 wp_set_current_user($user_id, $user_login); wp_set_auth_cookie($user_id); do_action('wp_login', $user_login); } } }
- 在register.php文件中找到<?php the_content();?>,在其下面添加以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
<?php if(!empty($error)) { echo '<p class="error">'.$error.'</p>'; } if (!is_user_logged_in()) { ?> <form name="registerform" method="post" action="<?php echo $_SERVER["REQUEST_URI"]; ?>" class="register"> <p> <label for="user_login">用户名:</label> <input type="text" name="user_login" id="user_login" class="input" value="<?php if(!empty($sanitized_user_login)) echo $sanitized_user_login; ?>" size="20" /><em>只允许用英文字母、数字和下划线</em> </p> <p> <label for="user_email">电子邮件:</label> <input type="text" name="user_email" id="user_email" class="input" value="<?php if(!empty($user_email)) echo $user_email; ?>" size="25" /><em>请输入正确的邮箱地址,接收激活邮件</em> </p> <p> <label for="user_pwd1">密码:</label> <input id="user_pwd1" class="input" type="password" tabindex="21" size="25" value="" name="user_pass" /><em>(至少6位)</em> </p> <p> <label for="user_pwd2">重复密码:</label> <input id="user_pwd2" class="input" type="password" tabindex="21" size="25" value="" name="user_pass2" /> </p> <p class="submit"> <input type="hidden" name="reg" value="ok" /> <input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="注册" /> </p> </form> <?php } else { echo '<p class="error">您已注册成功,并已登录!</p>'; } ?>
- 进入后台——页面——新建页面,标题自定义,在右侧选择模板“前台注册”,发布页面即可。为了方便注册用户以后登陆,可以再添加前台登陆表单,实现方法请看
https://www.boke8.net/wordpress-login-form-of-front.html
提醒:以上代码的添加,会员注册成功后会自动登陆,如果不想用户自动登陆,可找到以下代码:
1 2 3 4 5 6 7 |
$user = get_userdatabylogin($sanitized_user_login); $user_id = $user->ID; // 自动登录 wp_set_current_user($user_id, $user_login); wp_set_auth_cookie($user_id); do_action('wp_login', $user_login); |
替换为:(URL改为自己的)
1 |
wp_safe_redirect( 'https://www.boke8.net/' ); |
提示:然后可以使用CSS对注册表单进行美化,博客吧不提供CSS样式美化代码,可自主设计。
代码摘自:露兜博客
发表回复