前面实现了注册功能:https://www.jack361.com/?p=920
下面开始登陆功能:
一、添加登录表单
1、首先在当前主题的目录下新建一个php文件,命名为page-login.php,然后将page.php中的所有代码复制到page-login.php中;
2、删除page-login.php开头的所有注释,即 /* 与 */ ,以及它们之间的所有内容;
3、搜索:the_content,可以查找到类似代码<?php the_content(); ?>,将其替换成代码一(注意使用UTF-8编码保存)
如果你在page-login.php中找不到the_content,那么你可以查找:get_template_part,可找到类似代码:<?php get_template_part( ‘content’, ‘page’ ); ?>,将content-page.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 |
<?php the_content(); ?>
<?php if(!empty($error)) { echo ‘<p class=”ludou-error”>‘.$error.’</p>‘; } if (!is_user_logged_in()) { ?> <form name=“loginform” method=“post” action=“<?php echo $_SERVER[“REQUEST_URI“]; ?>” class=”ludou-login”> <p> <label for=“log”>用户名<br /> <input type=“text” name=“log” id=“log” class=“input” value=“<?php if(!empty($user_name)) echo $user_name; ?>” size=”20″ /> </label> </p> <p> <label for=“pwd”>密码(至少6位)<br /> <input id=“pwd” class=“input” type=“password” size=“25” value=“” name=“pwd” /> </label> </p> <p class=“forgetmenot”> <p class=“submit”> |
二、添加表单处理代码
在page-login.php开头处中,将第一个 <?php 替换成代码二(注意使用UTF-8编码保存),代码二:
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
<?php
/** * Template Name: 前台登录 * 作者:露兜 * 博客:http://www.ludou.org/ * * 2013年5月6日 : * 首个版本 * * 2013年5月21日 : * 防止刷新页面重复提交数据 */ if(!isset($_SESSION)) if( isset($_POST[‘ludou_token’]) && ($_POST[‘ludou_token’] == $_SESSION[‘ludou_token’])) { if( empty($user_password) ) { if($error == ”) { if ( isset( $_GET[‘r’] ) ) { if ( !$secure_cookie && is_ssl() && force_ssl_login() && !force_ssl_admin() && ( 0 !== strpos($redirect_to, ‘https’) ) && ( 0 === strpos($redirect_to, ‘http’) ) ) $creds = array(); unset($_SESSION[‘ludou_token’]); $rememberme = !empty( $_POST[‘rememberme’] ); $token = md5(uniqid(rand(), true)); |
最后进入WordPress管理后台 – 页面 – 创建页面,标题为登录(可以自己起名),内容填上登录说明等,右侧可以选择模板,选择 前台登录 即可。该页面即前台登录页面。
代码补充说明
1、如果想让用户登录后跳转到指定页面,可以在登录链接后面添加名为 r 的get参数,值为跳转的链接地址,如登录页面地址为http://www.ludou.org/login,如果你想让用户登录后跳转到后台的文章列表页,可以把登录地址改成下面的地址再提供给用户即可:http://www.ludou.org/login?r=http://www.ludou.org/wp-admin/edit.php
2、如果想美化一下登录表单,可以在主题的style.css中添加以下代码:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
p.ludou-error {
margin: 16px 0; padding: 12px; background-color: #ffebe8; border: 1px solid #c00; font-size: 12px; line-height: 1.4em; } .ludou-login label { color: #777; font-size: 14px; cursor: pointer; } .ludou-login .input { margin: 0; color: #555; font-size: 24px; padding: 3px; border: 1px solid #e5e5e5; background: #fbfbfb; } |