我的自定义登录页面存在重定向和限制问题。任何用户都可以浏览“社区”页面,但不能访问“分销商”页面。我已经设置了一个规则,所以如果任何人没有登录,都会转发到主页。登录的用户将被重定向到“分销商”页面。除了在Firefox上,一切似乎都很好。对于自定义登录页面,我使用Elementor的表单。
这是我必须将未登录用户限制在某些页面的自定义代码。
/*
* Restrict non logged users to certain pages
*/
add_action(\'template_redirect\',\'my_non_logged_redirect\', 10, 2);
function my_non_logged_redirect()
{
if ((is_page(\'distributors\') || is_page(\'distributor-success-stories\') || is_page(\'distributor-solutions\') || is_page(\'distributor-software\') || is_page(\'distributor-product-software\') || is_page(\'product-smart-projectors\') || is_page(\'distributor-product\') || is_page(\'product-accessories\') || is_page(\'distributor-press\') || is_page(\'distributor-media\') || is_page(\'distributor-firmware\')) && !is_user_logged_in())
{
wp_redirect( \'/login\' );
die();
}
}
以下是注册用户成功登录后我必须重定向的代码
/**
* Redirect non-admins to the homepage after logging into the site.
*/
function custom_login_redirect( $redirect_to, $request, $user ) {
return ( is_array( $user->roles ) && in_array( \'administrator\', $user->roles ) ) ? admin_url() : \'/distributors\';
}
add_filter( \'login_redirect\', \'custom_login_redirect\', 10, 3 );
同样,这在Chrome、Safari和Edge上运行良好,但在Firefox上却不行。有人能帮我吗?
SO网友:tiago calado
重定向与浏览器没有太多关系,如果您尝试清理firefox缓存,可能就是这样。
此外,在用户成功登录后使用“/分发服务器”作为url有时可能不起作用,可以重定向为url链接加上“/分发服务器”,使用起来更安全
home_url().\'/distributors\';
我在函数中使用此函数。php登录时重定向
// redirects user after login
if (! function_exists(\'ctm_login\')) {
add_action(\'wp_login\', \'ctm_login\');
function ctm_login(){wp_redirect(home_url());exit;}
}
所以你的情况应该是
// redirects user after login
if (! function_exists(\'ctm_login\')) {
add_action(\'wp_login\', \'ctm_login\');
function ctm_login(){
$url = ( is_array( $user->roles ) && in_array( \'administrator\', $user->roles ) ) ? admin_url() : home_url().\'/distributors\';
wp_redirect($url);
exit;
}
}
这是登录后的重定向,但有一个问题,如果有人转到url并写下;www.yourSite。com/分销商“;页面是否会加载?。。。