
智能摘要 AI
近期,Nicetheme(奈思)主题推出双十一优惠活动,作者作为老客户,选择了PandaPro主题并对其进行优化,旨在提升用户体验。文中详细介绍了如何通过ApollONE插件设置自定义登录界面,包括创建“注册登录”页面并设置固定链接。然而,直接访问/wp-admin仍会显示WordPress默认界面,为此作者提供了PHP代码,确保未登录用户访问/wp-admin或/wp-login.php时自动跳转至自定义的/sign页面。此外,还针对管理员用户进行了特殊处理,避免不必要的跳转。整体优化提升了网站的安全性和用户体验。
近日,Nicetheme(奈思)主题开启了双十一活动,所有主题都有巨额的优惠。毕竟是他们的老客户,对于这个PandaPro主题也是情有独钟。所以本次我们再来做一次PandaPro的美化,优化读者(用户)的体验,毕竟现在这个社会,顾客至上的原则早已深入人心。

设置登录界面
这里我们以ApollONE插件举例:
首先我们需要在页面管理中,新建【注册登录】的页面,并且设置固定链接为:/sign或者其他较短的链接地址
我们在 会员注册/登录/找回密码 页面 选择我们的【注册登录】页面,到此,我们就可以实现自定义后台登录界面,不过有一点不好的是,如果用户直接访问 /wp-admin 也会来到wordpress的默认登录界面,这样会使得我们做的优化浪费。

如果你选择在积木插件中开启后台安全登录地址,那么用户将不能直接访问,并且会跳转到你自定义的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;
}
}以上代码解决了后台访问的问题,效果还是不错的,如果想要给自己的网站添加版权声明等可以参考本站的以下文章:



评论 (0)