根据用户角色显示不同的主页

时间:2014-01-22 16:46:02

标签: php wordpress

我正在尝试根据用户角色显示不同的主页。我有4个不同的页面:

主页 - 默认一个 主页1 - 用户角色1 主页2 - 用户角色2 主页3 - 用户角色3

我现在遇到的问题是显示用户角色的页面。

这是我用来检查用户角色的功能。

function get_user_role(){
    if (is_user_logged_in()) {
        global $current_user;
        $user_roles = $current_user->roles;
        $user_role = array_shift($user_roles);
        return $user_role;
    }else{
        return "subscriber";
   } 
}

此外,我正在显示名为“主页”的页面,以便在主页上显示使用页面.php

is_front_page()

但是......我怎么能显示其他页面而不是默认的首页呢?

提前致谢

2 个答案:

答案 0 :(得分:2)

您可以使用get_template_part()功能:

get_template_part('home', get_user_role());

使用WordPress的模板层次结构,如果当前用户的角色是管理员,那么模板将首先查找 home-administrator.php ,如果找不到,那么它将回退到 home.php

答案 1 :(得分:0)

首先将(静态)首页设置为默认设置,然后根据用户使用option filter覆盖设置。

add_filter('option_page_on_front', 'your_override_function');
function your_override_function($page_id) {
   if (get_user_role == 'some_value') {
      return some_page_id;
   }
   return $page_id;
}