template_redirect
在每个页面加载(包括主页)时调用,因此即使用户访问主页,代码也会将用户重定向到主页
你可以在这里添加另一个条件,is_home()
或is_front_page()
, 取决于admin中的设置,但我建议使用更长的方法以获得更好的兼容性
a) 钩入login_url
更改登录的url。这会告诉wordpress登录表单出现在主页上;wp-login.php
不应使用
add_filter(\'login_url\', \'change_login_url\');
function change_login_url() {
return home_url(\'/\');
}
b)使用
auth_redirect()
确保用户重定向回上一页
wp
挂钩和非挂钩
init
由于尚未设置$wp\\u query global,因此条件is\\u front\\u page()将不起作用。
add_action(\'wp\', \'force_user_login\');
function force_user_login() {
if(!is_user_logged_in())
auth_redirect();
}