我试图扮演角色'订阅者' edit_post的能力。 虽然这是成功的,但我似乎无法在登录时引导用户远离默认的wordpress wp-admin页面。
每当我尝试建议的解决方案时,登录的用户(使用edit_post权限)都会被重定向到wp-admin页面。
当他们登录时,无论我做什么,wordpress都会转发给wp-admin显示wordpress后端。 (我不希望用户看到这个)
我之所以这样做,是因为我有一个自定义信息中心供他们使用,位于http://website.com/login/customdashboard/
我更喜欢这个功能。
我尝试过插件但没有成功:
"彼得的登录重定向" &安培;也是" s2成员(登录欢迎页面)"
我在没有成功的情况下尝试了以下功能:
function soi_login_redirect( $redirect_to, $request, $user ) {
return ( is_array( $user->roles ) && in_array( 'administrator', $user->roles ) ) ? admin_url() : site_url();
} // end soi_login_redirect
add_filter( 'login_redirect', 'soi_login_redirect', 10, 3 );
没有成功的另一个尝试:
function redirect_login_page(){
$page_viewed = basename($_SERVER['REQUEST_URI']);
$login_page = site_url();
if( $page_viewed == "wp-login.php" && $_SERVER['REQUEST_METHOD'] == 'GET') {
wp_redirect($login_page);
exit();
}
}
add_action('init','redirect_login_page');
非常感谢这方面的任何帮助。
答案 0 :(得分:1)
如果您想重定向所有/wp-admin
地址,可以使用:
add_action( 'admin_init', 'redirect_so_15396771' );
function redirect_so_15396771()
{
if ( defined( 'DOING_AJAX' ) && DOING_AJAX )
return;
// http://codex.wordpress.org/Roles_and_Capabilities
if ( !current_user_can('delete_users') ) {
wp_redirect( site_url( '/login/customdashboard/' ) );
exit();
}
}
如果您需要根据当前页面对其进行过滤,则可以使用全局$pagenow
,其中包含值index.php
,profile.php
,tools.php
等。