Wordpress在自定义登陆页面并且禁用自带的登陆页面

Posted jerryqi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Wordpress在自定义登陆页面并且禁用自带的登陆页面相关的知识,希望对你有一定的参考价值。

在使用Wordpress制作主题之后,不想要他自带的登陆页面以及地址。

1、新建一个用户页面来接管与登陆相关的动作

//在主题根目录下新建page-login.php,通过action获取用户动作,然后进行不同的处理。
//当然也可以只把login动作的代码放里面,其余再新建page-register.php等页面。
$action = isset($_REQUEST[‘action‘]) ? $_REQUEST[‘action‘] : ‘login‘;
global $wpdb, $user_ID;
switch ($action) {
    case ‘logout‘:
        if ($user_ID) {
            wp_logout();
            $redirect_to = apply_filters(‘logout_redirect‘, $redirect_to, $requested_redirect_to, $user);
            wp_safe_redirect($redirect_to);
        }
        exit();
    case ‘forget‘:
        if ($user_ID) {
            wp_redirect(get_bloginfo(‘url‘));
        } else {
            //在这里写忘记密码的处理过程
        }
        exit();
    case ‘reset‘:
        if ($user_ID) {
            //这里写重置密码的处理过程
        } else {
            wp_redirect(wselibrary_getloginurl());
        }
        exit();
    case ‘register‘:
        if ($user_ID) {
            wp_redirect(get_bloginfo(‘url‘));
        } else {
            //在这里写用户注册的处理过程
        }
        exit();
    case ‘login‘:
    default:
        if ($user_ID) {
            wp_redirect(get_bloginfo(‘url‘));
        } else {
            //这里写用户登陆的处理过程
        }
        exit();
}

2、 禁用Wordpress自带的登陆页面

//原理其实很简单,就是让用户访问自带登陆页面时直接跳转到指定页面
if (!function_exists(‘login_protection‘)) {
    function login_protection()
    {
        //如果有需要,你可以给自己一个访问的途径
        if ($_GET[‘superuser‘] != ‘password‘) header(‘Location: /index.php/login‘);
        //当然你也可以禁止所有人访问
        //header(‘Location: /index.php/login‘);
    }
    add_action(‘login_enqueue_scripts‘,‘login_protection‘);
}

  

以上是关于Wordpress在自定义登陆页面并且禁用自带的登陆页面的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress 在自定义帖子类型存档页面上按日期排序

如何在wordpress自定义中添加颜色选项

Wordpress - The7 模板 - 在每个页面上我都有 4 个警告并且不知道如何在菜单或 php 站点/内容中禁用它

sql 用于禁用现有WordPress页面,帖子和自定义帖子类型的注释,引用和pingback的SQL命令。默认的WordPress

如何在自定义帖子类型UI菜单图标区域添加字体真棒图标?

如何在自定义 PHP 脚本中调用 WordPress 函数