WordPress中登陆后关闭登陆页面及设置用户不可见栏目


Posted in PHP onDecember 31, 2015

用户登录后关闭登录页面
WordPress默认的登录页面是:http://WP目录/wp-login.php,登录后会自动跳转到:http://WP目录/wp-admin。现在问题来了,如果用户已经登录,但是它又打开wp-login.php页面,会出现什么样的情况呢?答案是,WordPress不会做任何处理,还是直接给你显示登录窗口:

WordPress中登陆后关闭登陆页面及设置用户不可见栏目

面对如此冰冷的登录框,用户会感到困惑,我刚刚不是已经登录了吗?怎么还要我输入用户名和密码?所以,用户登录后,我们不该让用户再看到登录框。解决此问题的办法有两个:

去除登录链接

     确保页面中不再出现wp-login.php的链接。如用户没有登录,网页中我们可以这样提示:

WordPress中登陆后关闭登陆页面及设置用户不可见栏目

用户登录后,我们将上面的登录和注册链接删除,换成:

WordPress中登陆后关闭登陆页面及设置用户不可见栏目

 这样不仅可以让用户对是否已经登录一目了然,而且不会误点击wp-login.php进入登录界面。PHP编程只需用到WordPress的is_user_logged_in()函数判断用户是否已经登录就可以实现。

wp-login.php做跳转

     有些时候,用户登录后还是会偶然点击到wp-login.php登录链接,如浏览器的地址栏。我们这时就该做些补救措施了,不要不作为让登录框显示在用户面前。这里介绍的方法是,当用户已经登录,但是又打开wp-login.php链接,我们就让他跳转到后台首页wp-admin,具体方法是,在当前主题的functions.php中加入以下php代码:

function redirect_logged_user() {
 if(is_user_logged_in() && (empty($_GET['action']) || $_GET['action'] == 'login')) {
  wp_redirect( admin_url() );
  exit;
 }
}
add_action( 'login_init', 'redirect_logged_user' );

创建对用户不可见的自定义栏目
如果你是一个插件或者主题开发者,应该经常会使用自定义栏目(或者叫自定义字段)来存储你的插件或主题的相关参数,有趣的是,在WordPress后台的文章编辑页面或使用the_meta()模板函数时,WordPress不会显示名称以 _(下划线)开头的自定义栏目。

对一些不想让用户看到,更不想让用户修改的自定义栏目,我们可以使用此技巧,不仅让文章编辑页面的自定义栏目简约些,而且不会让用户看到不熟悉的自定义栏目而感到困惑,甚至胡乱修改。下面是个使用范例:

<?php add_post_meta( 68, '_ludou', '露兜博客', true ); ?>

这样就给id为68的文章添加了名称为 _ludou,值为露兜博客的唯一的自定义栏目,而且在文章编辑页面用户也看不到。平常情况下,我们可能是这样使用的,这样在文章编辑页的自定义了栏目中就能看到 ludou 字段:

<?php add_post_meta( 68, 'ludou', '露兜博客', true ); ?>

另外,当自定义栏目的值是一个数组时,在文章编辑页面,该栏目对用户也是不可见的,即使自定义栏目的名称前没加下划线。

PHP 相关文章推荐
PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法
May 28 PHP
纯真IP数据库的应用 IP地址转化成十进制
Jun 14 PHP
用php实现的获取网页中的图片并保存到本地的代码
Jan 05 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
Jul 03 PHP
linux实现php定时执行cron任务详解
Dec 24 PHP
CodeIgniter框架过滤HTML危险代码
Jun 12 PHP
PHP图片自动裁切应付不同尺寸的显示
Oct 16 PHP
php 类自动载入的方法
Jun 03 PHP
WAMP环境中扩展oracle函数库(oci)
Jun 26 PHP
PHP使用Memcache时模拟命名空间及缓存失效问题的解决
Feb 27 PHP
PHP设计模式之工厂模式详解
Oct 24 PHP
PHP7 其他修改
Mar 09 PHP
WordPress中获取指定分类及其子分类下的文章数目
Dec 31 #PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
Dec 31 #PHP
WordPress中给媒体文件添加分类和标签的PHP功能实现
Dec 31 #PHP
简单了解将WordPress中的工具栏移到底部的小技巧
Dec 31 #PHP
WordPress中获取所使用的模板的页面ID的简单方法
Dec 31 #PHP
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看
Dec 31 #PHP
详解Window7 下开发php扩展
Dec 31 #PHP
You might like
PHP的FTP学习(三)
2006/10/09 PHP
写php分页时出现的Fatal error的解决方法
2011/04/18 PHP
php使用timthumb生成缩略图的方法
2016/01/22 PHP
使用正则去除php代码中的注释方法
2016/11/03 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
php对象工厂类完整示例
2018/08/09 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
php 输出缓冲 Output Control用法实例详解
2020/03/03 PHP
arguments对象
2006/11/20 Javascript
纯JavaScript实现的完美渐变弹出层效果代码
2010/04/02 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
jQuery选择器总结之常用元素查找方法
2016/08/04 Javascript
bootstrap侧边栏圆点导航
2017/01/11 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
干货!教大家如何选择Vue和React
2017/03/13 Javascript
Bootstrap页面标题Page Header的实现方法
2017/03/22 Javascript
微信小程序 自动登陆PHP源码实例(源码下载)
2017/05/08 Javascript
nodejs mysql 实现分页的方法
2017/06/06 NodeJs
node中modules.exports与exports导出的区别
2018/06/08 Javascript
element-ui 的el-button组件中添加自定义颜色和图标的实现方法
2018/10/26 Javascript
ES6 async、await的基本使用方法示例
2020/06/06 Javascript
[54:15]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第二场2月1日
2021/03/11 DOTA
python flask中静态文件的管理方法
2018/03/20 Python
Linux 修改Python命令的方法示例
2018/12/03 Python
python 采用paramiko 远程执行命令及报错解决
2019/10/21 Python
selenium中get_cookies()和add_cookie()的用法详解
2020/01/06 Python
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
领先的英国注册在线药房 :Simply Meds Online
2019/03/28 全球购物
校运会广播稿100字
2014/01/27 职场文书
爱国主义教育活动总结
2014/05/07 职场文书
工作汇报开头与结尾怎么写
2014/11/08 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
污水处理保证书
2015/05/09 职场文书
学校安全管理制度
2015/08/06 职场文书
文明医院的标语集锦!
2019/07/24 职场文书