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 相关文章推荐
不用iconv库的gb2312与utf-8的互换函数
Oct 09 PHP
php zlib压缩和解压缩swf文件的代码
Dec 30 PHP
PHP 图片上传代码
Sep 13 PHP
php数组中删除元素的实现代码
Jun 22 PHP
如何使用php绘制在图片上的正余弦曲线
Jun 08 PHP
php计算数组相同值出现次数的代码(array_count_values)
Jan 20 PHP
CodeIgniter辅助之第三方类库third_party用法分析
Jan 20 PHP
PHP Try-catch 语句使用技巧
Feb 28 PHP
thinkphp自带验证码全面解析
Sep 18 PHP
PHP Trait代码复用类与多继承实现方法详解
Jun 17 PHP
浅谈laravel aliases别名的原理
Oct 24 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
Feb 07 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函数,php爱好者站推荐
2007/03/19 PHP
Windows7下PHP开发环境安装配置图文方法
2010/05/20 PHP
php小型企业库存管理系统的设计与实现代码
2011/05/16 PHP
php中使用接口实现工厂设计模式的代码
2012/06/17 PHP
php中filter_input函数用法分析
2014/11/15 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
js中的setInterval和setTimeout使用实例
2014/05/09 Javascript
jquery控制表单输入框显示默认值的方法
2015/05/22 Javascript
jQuery基础知识点总结(必看)
2016/05/31 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
Web打印解决方案之普通报表打印功能
2016/08/29 Javascript
React实现点击删除列表中对应项
2017/01/10 Javascript
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
2018/01/25 Javascript
利用js将ajax获取到的后台数据动态加载至网页中的方法
2018/08/08 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
通过实例了解JS 连续赋值
2019/09/24 Javascript
Node.js设置定时任务之node-schedule模块的使用详解
2020/04/28 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
Vue 电商后台管理项目阶段性总结(推荐)
2020/08/22 Javascript
python连接mysql并提交mysql事务示例
2014/03/05 Python
Python外星人入侵游戏编程完整版
2020/03/30 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
Python对象转换为json的方法步骤
2019/04/25 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
Python 判断时间是否在时间区间内的实例
2020/05/16 Python
python进度条显示之tqmd模块
2020/08/22 Python
python批量修改文件名的示例
2020/09/27 Python
西式婚礼证婚词
2014/01/12 职场文书
民主生活会意见
2015/06/05 职场文书
HTML通过表单实现酒店筛选功能
2021/05/18 HTML / CSS
MySQL 数据库 增删查改、克隆、外键 等操作
2022/05/11 MySQL