今天翻看订阅的feed中发觉有国外高手已经可以做到wordpress更新密码的方法了,这个方法可是我之前一直无法解决的难题。
很久之前,有个朋友想做一个页面用来显示一些基本的用户信息,而不是wordpress系统中默认的那个很烦琐的个人信息页面。
要做一个页面显示和可以修改个人信息不难,但是要可以让用户修改密码,这个就是一个难题了,我当时google了很久也没有找到好的解决方法,没有想到现在这里看到了一个可行的方案。
下面的代码是一个简单的例子,创建了一个非常简单的带密码修改功能的个人信息页面。
新建一个文件到主题文件夹下,命名为account.php,把下面的代码放到文件中。
新建一个页面,选用模板为account Center。
<?php /* * Template Name: Account Center */ if( $_POST['submit_info'] ) { // Set all variables $first_name = $_POST['first_name']; $last_name = $_POST['last_name']; $email = $_POST['email']; $password = $_POST['password']; $password2 = $_POST['password2']; // 检验所有的必要的字段 // 使用php再次检验数据的安全性 $errors = array(); if( $first_name == '' or $last_name == '' ) { $errors[] = 'Please fill in a valid first and last name'; } if( $email == '' or ! is_email( $email ) ) { $errors[] = 'Please fill in a valid email address'; } if( $current_user->user_email != $email && email_exists( $email ) ) { $errors[] = 'The email you supplied is already in use. Please try a different email address'; } if( $password != '' and $password != $password2 ) { $errors[] = 'Please make sure your passwords match'; $password_update = false; } else { $password_update = true; } // 如果系统没有出错,执行下面的代码 if( ! $errors ) { // 首先更新用户个人信息 $data = array( 'ID' => $current_user->ID, 'user_email' => $email, 'first_name' => $first_name, 'last_name' => $last_name ); // 如果设置了新密码,更新密码 if( $password_update ){ $data['user_pass'] = $password; } wp_update_user( $data ); } } get_header(); ?> <div class="pamary"> <?php //检验当前用户是否已经登陆,如果没有则显示登陆框 if(!is_user_logged_in()){ wp_login_form(); }else{ global $current_user; get_currentuserinfo(); ?> <form action=""> <p><label for="Name">昵称:<input type="text" name="" id="" value="<?php echo $current_user->user_nicename ; ?>" /></label></p> <p><label for="">邮件:<input type="text" name="" id="" value="<?php echo $current_user->user_email; ?>" /></label></p> <p><label for="">First Name:<input type="text" name="first_name" id="" value="<?php echo $current_user->user_firstname ; ?>" /></label></p> <p><label for="">Last Name:<input type="text" name="last_name" id="" value="<?php echo $current_user->user_lastname ; ?>" /></label></p> <p><label for="">密码:<input type="password" name="" id="" value="" /></label></p> <p><label for="">密码:<input type="password" name="" id="" value="" /></label></p> <p><input type="submit" name="submit_info" value="确定" /></p> </form> <?php } ?> </div> <?php get_footer(); ?>
拥有多年WordPress博客/企业建站开发经验,独树一帜的设计,提供最专业的网站设计方案;原创的主题标签语义化,增强网站优化效果。
增强用户体验、提高品牌形象给人留下深刻的印象,那就选择我们,我们的每一款主题都是独一无二的,都有自己的灵魂,每款主题都有各自的配色方案。
遵循现代网页设计的趋势,所有主题都提供完整的响应式布局,优化大桌面显示器以及对平板和智能手机的支持,从而提供一致性的用户体验。
长期及时地在线售后服务和免费升级更新,确保您的网站始终运行在最佳状态,24小时QQ在线的沟通方式免去您的后顾之忧,替您节省网站维护成本。
学习了,非常好的教程!有没有收藏文章的教程和分类标签和可以订阅标签的教程。就像虎嗅网那样的!
@skating507 看看优畅主题出品的两款主题,都是带会员中心收藏的