近日,Nicetheme(奈思)主题开启了双十一活动,所有主题都有巨额的优惠。毕竟是他们的老客户,对于这个PandaPro主题也是情有独钟。所以本次我们再来做一次PandaPro的美化,优化读者(用户)的体验,毕竟现在这个社会,顾客至上的原则早已深入人心。

WordPress开发日志:自定义后台登录界面插图
登录界面n预览

设置登录界面

这里我们以ApollONE插件举例:

首先我们需要在页面管理中,新建【注册登录】的页面,并且设置固定链接为:/sign或者其他较短的链接地址

我们在 会员注册/登录/找回密码 页面 选择我们的【注册登录】页面,到此,我们就可以实现自定义后台登录界面,不过有一点不好的是,如果用户直接访问 /wp-admin 也会来到wordpress的默认登录界面,这样会使得我们做的优化浪费。

WordPress开发日志:自定义后台登录界面插图1
设置登录界面

如果你选择在积木插件中开启后台安全登录地址,那么用户将不能直接访问,并且会跳转到你自定义的404界面或者其他界面

PHP代码

为了使得未登录用户访问 /wp-admin/wp-login.php 能够自动跳转到我们自定义的 /sign 页面,我们需要在我们主题的functions.php文件中添加以下钩子:

function ludou_is_administrator() {
  // wp_get_current_user函数仅限在主题的functions.php中使用
  $currentUser = wp_get_current_user();

  if(!empty($currentUser->roles) && in_array('administrator', $currentUser->roles)) 
    return 1;  // 是管理员
  else
    return 0;  // 非管理员
}

add_filter( 'login_url', 'my_login_page', 10, 3 );
function my_login_page( $login_url, $redirect, $force_reauth ) {
    $login_page = home_url( '/sign' );
    $uc_page = home_url( '/uc' );
    $login_url = add_query_arg( 'redirect_to', $redirect, $login_page );
    if(!is_user_logged_in())
    {
        return $login_url;
    }
    else if(ludou_is_administrator()==0)//是管理员就不跳
    {
        return $uc_page;
    }
}

经过测试,上面的代码只是对访问 /wp-admin 起到限制效果,由于很少一部分用户会选择访问 /wp-login.php,所以我们还是要防止意外发生,向主题文件中添加以下内容:

function ludou_is_administrator() {
  // wp_get_current_user函数仅限在主题的functions.php中使用
  $currentUser = wp_get_current_user();

  if(!empty($currentUser->roles) && in_array('administrator', $currentUser->roles)) 
    return 1;  // 是管理员
  else
    return 0;  // 非管理员
}

add_filter( 'login_url', 'my_login_page', 10, 3 );
function my_login_page( $login_url, $redirect, $force_reauth ) {
    $login_page = home_url( '/sign' );
    $uc_page = home_url( '/uc' );
    $login_url = add_query_arg( 'redirect_to', $redirect, $login_page );
    if(!is_user_logged_in())
    {
        return $login_url;
    }
    else if(ludou_is_administrator()==0)//是管理员就不跳
    {
        return $uc_page;
    }
}

以上代码解决了后台访问的问题,效果还是不错的,如果想要给自己的网站添加版权声明等可以参考本站的以下文章:

https://blog.eswlnk.com/427.html