WordPress怎么添加前台注册功能
WordPress属于个人博客型的开源系统,是不是具备前台注册功能的,下面我来介绍自己给WordPress增加一个会员注册功能,有需要的朋友可参考.
一、添加注册表单
1、首先在当前主题的目录下新建一个php文件,命名为reg-page.php,然后将page.php中的所有代码复制到reg-page.php中;
2、删除reg-page.php开头的所有注释,即 /* 与 */,以及它们之间的所有内容;
3、搜索:the_content,可以查找到类似代码<?php the_content(); ?>,将其替换成代码一(注意使用UTF-8编码保存)
如果你在reg-page.php中找不到the_content,那么你可以查找:get_template_part,可找到类似代码:<?php get_template_part( 'content', 'page' ); ?>,将content-page.php中的所有代码替换这部分代码即可。再用下面的代码替换<?php the_content(); ?>
html代码如下:
<?php the_content(); ?> <?php if (! empty 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>' ; } ?>添加表单处理代码: 在reg-page.php开头处中,将第一个 <?php 改成代码二(注意使用UTF-8编码保存)
php代码如下:
<?php if ( ! empty 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( $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 ); } } }查看更多关于WordPress怎么添加前台注册功能 - WordPress的详细内容...