- 加入我的QQ群
- 关注我的百家号
扫描下面的二维码,“关注”我的百家号。
对于开发wordpress主题的朋友来说,给常会接到客户的各种需求,如:本章要讲到的创建wordpress自定义注册页面及登录页面。一般wordpress站长基本上不需要这样的功能,只需要通过wordpress默认的登录和注册页面就可以了。而有的用户想让自己的网站与众不同,一个不一样的注册登录页面是可以给浏览者或注册者一个不一样的感觉,感觉网站更加的专业。那么,怎样创建一个wordpress自定义注册页面呢?下面,就随高时银博客一起来看看吧。
创建wordpress自定义注册页面步骤如下:
1、在主题文件夹下创建一个custom-register.php 的自定义注册页面文件。
2、给这个注册页面添加模板名,在custom-register.php 文件中添加如下代码:
<?php
/*
Template Name: 注册页面模板
*/
这一步是一定要做的,这个会在创建页面时作为模板选项用的。就是在创建页面的页面右侧的页面属性下的“模板”下拉框。
3、添加如下php代码:
if( !empty($_POST['ludou_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( $sanitized_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);
wp_redirect( home_url().'/wp-admin' ); exit;
}
}}
get_header();
?>
<?php the_content(); ?>
<?php if(!empty($error)) {
echo '<p class="ludou-error">'.$error.'</p>';
}
if (!is_user_logged_in()) { ?>
<form name="registerform" method="post" action="<?php echo $_SERVER["REQUEST_URI"]; ?>" class="ludou-reg">
<p>
<label for="user_login">用户名<br />
<input type="text" name="user_login" id="user_login" class="input" value="<?php if(!empty($sanitized_user_login)) echo $sanitized_user_login; ?>" size="20" />
</label>
</p>
<p>
<label for="user_email">电子邮件<br />
<input type="text" name="user_email" id="user_email" class="input" value="<?php if(!empty($user_email)) echo $user_email; ?>" size="25" />
</label>
</p><p>
<label for="user_pwd1">密码(至少6位)<br />
<input id="user_pwd1" class="input" type="password" tabindex="21" size="25" value="" name="user_pass" />
</label>
</p><p>
<label for="user_pwd2">重复密码<br />
<input id="user_pwd2" class="input" type="password" tabindex="21" size="25" value="" name="user_pass2" />
</label>
</p><p class="submit">
<input type="hidden" name="ludou_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="ludou-error">您已注册成功,并已登录!</p>';
?>
上面这段代码,在用户点击进入这个注册页面时,会做出相应的判断:
1、判断用户是否已经登录,如果已经登录,就直接跳转显示首页。
2、如果没有登录,就显示注册页面。如下图:
注:这个wordpress自定义注册页面不会自己生成,所以,我们还要在wordpress后台创建新页面,命名为注册,然后在右侧的页面属性的模板下拉框中选择“注册”这个页面模板,就可以了。如何将这个wordpress自定义注册页面自动生成,我们会在后期的教程中讲解到,敬请候看。