根据分配的角色将 WordPress 用户重定向到另一个页面

问题描述 投票:0回答:2

有谁知道一种方法(或插件),可以让我在用户尝试访问主 /wp-admin 页面时,根据分配的用户角色自动将用户重定向到另一个页面?

棘手的部分是(我猜),我仍然需要他们能够访问子管理页面(即 mysite.com/wp-admin/edit.php)——如果他们尝试,它只会重定向他们转到主/仪表板页面,mysite.com/wp-admin

php wordpress http-redirect
2个回答
6
投票

我最近遇到了需要重定向多个页面的问题。以下代码将检查您想要重定向的角色 ($valid-roles),如果无效,则重定向到给定的 URL...在本例中为 /access-denied/。

注意: 页面 ID 在要重定向的页面数组列表中。

add_action( 'template_redirect', 'role_based_redirect' );
function role_based_redirect() {
    if( is_page( array( 1488, 2413, 2379, 2265, 2396, 2370, 2366, 4600 ) ) ) { //check the list of "corporate" pages
        $user = wp_get_current_user();
        $valid_roles = [ 'administrator', 'corporate', 'editor' ];

        $the_roles = array_intersect( $valid_roles, $user->roles );

        // The current user does not have any of the 'valid' roles.
        if ( empty( $the_roles ) ) {
            wp_redirect( home_url( '/access-denied/' ) );
            exit;
        }
    }
}


0
投票

您可以通过多种方式在 WordPress 页面上按角色将 URL 重定向设置为不同的链接,您可以使用插件,也可以构建一个插件以您自己的方式专门对其进行自定义,请按照此 link 获取该说明但我相信作为第二个更好的选择,这个插件就在这里可能对您来说很容易也可能对您有所帮助。

祝你好运

© www.soinside.com 2019 - 2024. All rights reserved.