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 相关文章推荐
require(),include(),require_once()和include_once()的异同
Jan 02 PHP
php在线代理转向代码
May 05 PHP
PHP json格式和js json格式 js跨域调用实现代码
Sep 08 PHP
codeigniter使用技巧批量插入数据实例方法分享
Dec 31 PHP
php 使用GD库为页面增加水印示例代码
Mar 24 PHP
php递归创建目录的方法
Feb 02 PHP
支持中文的PHP按字符串长度分割成数组代码
May 17 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
Oct 10 PHP
PHP引用的调用方法分析
Apr 25 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
Mar 18 PHP
Laravel框架Request、Response及Session操作示例
May 06 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
Jun 12 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无限分类源码分享(思路不错)
2011/10/13 PHP
CentOS 6.2使用yum安装LAMP以及phpMyadmin详解
2013/06/17 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
JavaScript 捕获窗口关闭事件
2009/07/26 Javascript
JQuery 选择器 xpath 语法应用
2010/05/13 Javascript
Javascript笔记一 js以及json基础使用说明
2010/05/22 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
nodejs入门详解(多篇文章结合)
2012/03/07 NodeJs
鼠标移到导航当前位置的LI变色处于选中状态
2013/08/23 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
2015/09/11 Javascript
详解Bootstrap四种图片样式
2016/01/04 Javascript
javascript瀑布流式图片懒加载实例解析与优化
2016/02/23 Javascript
全面了解javascript三元运算符
2016/06/27 Javascript
基于angular实现三级联动的生日插件
2017/05/12 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
微信小程序中实现手指缩放图片的示例代码
2018/03/13 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
详解Vue demo实现商品列表的展示
2019/05/07 Javascript
js实现图片推拉门效果代码实例
2019/05/18 Javascript
layui 实现表格某一列显示图标
2019/09/19 Javascript
elementui实现预览图片组件二次封装
2020/12/29 Javascript
Python中3种内建数据结构:列表、元组和字典
2014/11/30 Python
python smtplib模块发送SSL/TLS安全邮件实例
2015/04/08 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
Python之Sklearn使用入门教程
2021/02/19 Python
HTTP状态码详解
2021/03/18 杂记
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
HTML5 文件域+FileReader 分段读取文件并上传到服务器
2017/10/23 HTML / CSS
英国广泛的照明产品网站:Lights4living
2018/01/28 全球购物
请描述一下”is a”关系和”has a”关系
2015/02/03 面试题
TCP/IP的分层模型
2013/10/27 面试题
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript
Java实现简单小画板
2022/06/10 Java/Android