wordpress - 如果用户未登录,Wordpress 重定向到登录页面
问题描述
我需要强制用户登录才能看到浏览我的网站。对于新用户,应该只允许访问作为my-account
我的登录 url 的页面,即example.org/my-account
以下是我到目前为止所做的
add_action('wp','force_register' );
function force_register() {
$loggedin = is_user_logged_in();
$pagename = get_query_var('pagename'); //get current page name
if(strcmp("my-account",$pagename) != 0){ //if the user is looking at any other page other than my-account page
if(!$loggedin){ //if the user is not logged in
wp_safe_redirect( "/my-account", 302 ); //redirect to the login page
exit;
}
}
浏览器无法重定向并抱怨重定向过多
我错过了什么?
解决方案
在 WordPress 进行任何路由、处理或处理之前。它在 main() WP 方法中运行,其中 $query_args 被传递给 parse_request(),以及在设置 send_headers()、query_posts()、handle_404() 和 register_globals() 时。这是由您的问题引起的,您可以使用 init 而不是 wp hook。更多关于 wp 钩子的信息。
推荐阅读
- monads - 用纯编程语言包装副作用
- c# - EmguCV Video Writer - 确保您安装了特定的编解码器
- if-statement - 复杂的 IF 语句返回 false
- reactjs - 无法启动 React 项目
- android - 从 Java 代码访问 kotlin Suspend 函数
- php - 如何在 Ajax 中正确制作返回按钮?
- php - PHP字符串拆分规则
- php - 如何使资产在 Laravel 中动态显示
- c# - 是否可以使用 .NetTopologySuite 与多边形相交/剪裁线?
- php - 基于 Laravel 构建的站点,当我提交表单时出现 smtp 错误