WordPress用户登录后关闭登录页面

日期: 标签:WordPress教程 16 条留言
如需帮忙改代码,或者WordPress二次开发、PHP网站建设等需求,可联系我购买付费服务:  点此联系我

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

WordPress登录页面

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

去除登录链接

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

未登录

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

已登录

     这样不仅可以让用户对是否已经登录一目了然,而且不会误点击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' );

-- 完 --

本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息:
原文出处:露兜博客 https://www.ludou.org/wordpress-not-show-login-form-after-logged.html
露兜
kaapass@outlook.com  QQ 825533758

业余编程爱好者,主业是淘宝店主,卖些工艺品,感兴趣可以到我的淘宝店看看(旺旺不提供技术咨询):西西弗sisyphe

16 条留言

点此留言
  1. 有点蓝

    我能说,我恰好需要这个功能么? 真就那么巧……

  2. Ludou

    @有点蓝 那就再好不过咯

  3. yxiao

    这个以前还真没发现哦。

  4. 噜噜别跑

    夫君~~好厉害!!!!!

  5. Ludou

    @噜噜别跑 那是

  6. Eiko

    我是来围观糗百的.

  7. iKx.me

    学习一下

  8. 大喇叭

    不错啊…下面的评价是怎么搞的啊…

  9. 大喇叭

    下面的评分…

  10. 麦田一根葱

    求评分功能

  11. Ludou

    @麦田一根葱 自仿插件,抱歉不分享。

  12. Ludou

    @麦田一根葱 你也可以去这里问问:http://fatesinger.com/

  13. 麦田一根葱

    @Ludou = =好吧

  14. 子寒

    可以直接做一个用户登录页面吗?

  15. Ludou

    @子寒 https://www.ludou.org/wordpress-frontend-login.html

  16. dafei

    不错!

发表留言