wordpress 如何自定义用户注册页面
wordpress程序自带有注册页面,但很难满足我们自己建网站的需求。我们在做网站时,如何自定义wordpress 注册页面呢?下面就是自定义wordpress 注册页面的方法。
第一步:新建一个HTML空白页面,在HTML页面中,粘贴以下HTML代码,用于显示用户输入框。
<? get_header();?><div class="con"> <div class="zhuce"> <? the_content(); ?><? if(!empty($error)) {echo '<p class="ludou-error">'.$error.'</p>';}if (!is_user_logged_in()) { ?><div class="top1"> <h2>注册账户</h2> <div class="txt">注册<? bloginfo('name'); ?> 【官网】会员,如果您已拥有账户,则可在此 <a href="<? echo get_option('home'); ?>/">首页登录</a></div> </div><form name="registerform" method="post" action="<? echo $_SERVER["REQUEST_URI"]; ?>" class="ludou-reg"><p class="zc00"><label for="user_login">用户昵称: <input type="text" name="user_login" id="user_login" class="input" value="<? if(!empty($sanitized_user_login)) echo $sanitized_user_login; ?>" size="20" /> <span style="color:#900">长度为6~16位字符</span></label></p><p class="zc00"><label for="user_pwd1">设置密码: <input id="user_pwd1" class="input" type="password" tabindex="21" size="25" value="" name="user_pass" /> <span style="color:#900">长度为6~16位字符,可以为“数字/字母/中划线/下划线”组成</span></label></p><p class="zc00"><label for="user_pwd2">确认密码: <input id="user_pwd2" class="input" type="password" tabindex="21" size="25" value="" name="user_pass2" /></label></p><p class="zc00"><label for="user_email">电子邮件: <input type="text" name="user_email" id="user_email" class="input" value="<? if(!empty($user_email)) echo $user_email; ?>" size="25" /></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><? } else {echo '<p class="ludou-error">您已注册成功,并已登录!<a style="color:red;" href="/">返回首页</a></p>';} ?></div> <div class="clear h10"></div></div><? get_footer();?>
第二步:将第一步的HTML页面进行保存,取名为reg.;
第三步:使用以下的代码替换掉reg.中的<? get_header();?>,作用是为了验证用户填写的信息。
<?/*Template Name: 网站注册页面*/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 usernameif ( $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 addressif ( $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 passwordif(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);}}}get_header();?>
第四步:将下面的CSS代码粘贴到 get_header();?> 的下面,用于控制wordpress注册页面的样式。
<style>.zc00{margin:15px 0;}.zhuce{ width: 860px; margin: 0 auto; padding: 30px 30px 40px; background: #fff; border: 1px solid #e0e0e0; border-radius: 8px;}.zhuce input{ width: 280px; height: 35px; margin-right: 10px; padding: 0 10px; line-height: 30px; border: 0; background-image: url(<? bloginfo('template_directory'); ?>/images/userlog_input_bg.png); font-size: 14px; font-family: Verdana;}.zhuce input[type="submit"]{width: 119px; height: 37px; background-image: url(<? bloginfo('template_directory'); ?>/images/userlog_btn_bg.png); border: 0; color: #fff; font-size: 14px; font-weight: bold; font-family: "微软雅黑"; cursor: pointer; margin-left:120px;}.top1 { margin-bottom: 40px; padding-bottom: 12px; border-bottom: 1px dashed #dadada;} .top1 h2 { font-size: 20px; color: #9C0; margin-bottom:10px;}.mainbody .txt { margin-top: 8px; color: #999;}</style>
第五步:将所有的改动全部保存。然后在wordpress网站后台,新建一个页面,标题写“用户注册”,模板选择“网站注册页面”,然后创建,这样一个自定义的wordpress注册页面就制作好了。结合制作WP网站的登录功能,就可以完美的给自己的网站制作出注册和登录页面了。
下面是完整的wordpress注册页面的代码:
<?/*Template Name: 网站注册页面*/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 usernameif ( $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 addressif ( $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 passwordif(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);}}}get_header();?><style>.zc00{margin:15px 0;}.zhuce{ width: 860px; margin: 0 auto; padding: 30px 30px 40px; background: #fff; border: 1px solid #e0e0e0; border-radius: 8px;}.zhuce input{ width: 280px; height: 35px; margin-right: 10px; padding: 0 10px; line-height: 30px; border: 0; background-image: url(<? bloginfo('template_directory'); ?>/images/userlog_input_bg.png); font-size: 14px; font-family: Verdana;}.zhuce input[type="submit"]{width: 119px; height: 37px; background-image: url(<? bloginfo('template_directory'); ?>/images/userlog_btn_bg.png); border: 0; color: #fff; font-size: 14px; font-weight: bold; font-family: "微软雅黑"; cursor: pointer; margin-left:120px;}.top1 { margin-bottom: 40px; padding-bottom: 12px; border-bottom: 1px dashed #dadada;} .top1 h2 { font-size: 20px; color: #9C0; margin-bottom:10px;}.mainbody .txt { margin-top: 8px; color: #999;}</style><div class="con"> <div class="zhuce"> <? the_content(); ?><? if(!empty($error)) {echo '<p class="ludou-error">'.$error.'</p>';}if (!is_user_logged_in()) { ?><div class="top1"> <h2>注册账户</h2> <div class="txt">注册<? bloginfo('name'); ?> 【官网】会员,如果您已拥有账户,则可在此 <a href="<? echo get_option('home'); ?>/">首页登录</a></div> </div><form name="registerform" method="post" action="<? echo $_SERVER["REQUEST_URI"]; ?>" class="ludou-reg"><p class="zc00"><label for="user_login">用户昵称: <input type="text" name="user_login" id="user_login" class="input" value="<? if(!empty($sanitized_user_login)) echo $sanitized_user_login; ?>" size="20" /> <span style="color:#900">长度为6~16位字符</span></label></p><p class="zc00"><label for="user_pwd1">设置密码: <input id="user_pwd1" class="input" type="password" tabindex="21" size="25" value="" name="user_pass" /> <span style="color:#900">长度为6~16位字符,可以为“数字/字母/中划线/下划线”组成</span></label></p><p class="zc00"><label for="user_pwd2">确认密码: <input id="user_pwd2" class="input" type="password" tabindex="21" size="25" value="" name="user_pass2" /></label></p><p class="zc00"><label for="user_email">电子邮件: <input type="text" name="user_email" id="user_email" class="input" value="<? if(!empty($user_email)) echo $user_email; ?>" size="25" /></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><? } else {echo '<p class="ludou-error">您已注册成功,并已登录!<a style="color:red;" href="/">返回首页</a></p>';} ?></div> <div class="clear h10"></div></div><? get_footer();?>
相关推荐
-
WordPress搜索结果怎么屏蔽Page页面和指定分类
wordprss网站用户搜索时,会显示所有符合用户需求的内容,包括文章页面和pag页面。那么不希望Pag页面被用户搜索出来的,不想让它显示在搜索结果里。搜索结果屏蔽Pag页面(将以下的代码,放到自己的WordPrss模板的函数文件functions.)搜
-
wordpress不同page页面设置不同模板的方法
wordprss网站上不变的内容可以使用pag页面来制作。比如:公司介绍、联系我们、人才招聘等。在wordprss模板制作教程中也介绍了pag页面制作方法。一般情况下,wordprss后台的页面是自动调用pag.模板的,但是有时为了网站制作的需要,要求不同p
-
WordPress根据ID获取Page页面标题、链接和缩略图
用wordprss做主题时,往往需要通过页面的ID号来获取链接。下面是Wordprss通过ID获取分类和Pag的链接的二种代码。WordPrss通过ID获取Pag页面链接:?chogt_pag_link(1);?除此之外,w
-
帝国CMS 动态页面模板目录结构
帝国CMS动态页面模板目录结构
-
帝国cms重建数据索引表解决Duplicate entry错误
帝国cms在修改和添加任何内容的时候提示Duplicatntry错误,查看indx数据表的记录值与其它的几个表的数量对应有一定的差别。