有些站长希望使用WordPress实现当访客登录后查看网站的所有文章,这种方法如何实现呢?其实很简单,可以通过以下的代码来实现这个功能。
有两个场景:
1.当用户访问网站,直接跳转到登录页面。
2.当用户访问网站跳转到指定的页面(比如说一个提示页)
第一个场景,当用户访问网站跳转到登录页面实现代码(没有登录)
add_action( \'wp\', \'login_access\' );
function login_access() {
global $pagenow;
if( !is_user_logged_in() && $pagenow != \'wp-login.php\' )
auth_redirect();
}将这个代码放在你当前使用主题的函数模板functions.php中 即可实现该功能。
第二个场景,未登陆跳转到指定的页面
add_action( \'template_redirect\', \'zm_force_login\' );
function zm_force_login() {
// 判断登录
if ( ! is_user_logged_in() ) {
// 判断HTTPS
$schema = isset( $_SERVER[\'HTTPS\'] ) && \'on\' === $_SERVER[\'HTTPS\'] ? \'https://\' : \'http://\';
// 判断站内链接
$url = $schema . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\'];
// 添加白名单
$allowed = apply_filters_deprecated( \'zm_force_login_whitelist\', array( array( \'允许访问的链接1\', \'允许访问链接2\' ) ), \'1.0\', \'zm_force_login_bypass\' );
$bypass = apply_filters( \'zm_force_login_bypass\', in_array( $url, $allowed ), $url );
if ( preg_replace( \'/\\?.*/\', \'\', $url ) !== preg_replace( \'/\\?.*/\', \'\', wp_login_url() ) && ! $bypass ) {
// 防止缓存
nocache_headers();
// 跳转的页面链接
$page = \'跳转到的页面链接\';
// 执行302跳转
wp_safe_redirect( $page, 302 );
// 跳转到默认登录页面
// wp_safe_redirect( wp_login_url(), 302 );
exit;
}
}
}注:跳转的页面链接要同时加到白名单中,否则会形成死循环。
当然也可以使用一款名为 Registered Users Only 的插件来实现这个功能。
本站除原创内容,其余内容均收集自互联网,仅限用于学习和研究目的,本站不对其内容的合法性、可用性承担任何责任。本站禁止以任何形式发布或转载任何违法相关信息,若您发现请立即向站长举报;用户投稿一切资源内容不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
如有版权内容,其版权均归原作者所有,本站虽力求保存原有版权信息,但因众多资源经多次转载,已无法确定其真实来源,故敬请原作者谅解!为尊重作者劳动成果,请购买正版支持作者,谢谢!若您对「HULIKU.COM」所载资源作品版权归属存有异议,请发送邮箱:ihuliku@qq.com 进行处理。
本站资源文件大多存储至云盘,如您发现图片或链接失效,请联系站长或作者,我们将及时进行更新。资源都是经过站长或作者收集测试优化后进行发布分享。如若转载请在贵站文内以超链形式注明狐狸库文章出处,谢谢合作!













![WordPress子比主题美化教程合集[2023/04/17]-狐狸库](https://huliku.com/pic/2023032607024935.png)
![狐狸库自定义子比主题底部footer页脚美化(自适应)[06.26]更新-狐狸库](https://huliku.com/pic/2023062610013835.png)























请登录后查看评论内容