2014-01-22 58 views
0

我试图根据用户角色显示不同的主页。我有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"; 
    } 
} 

而且我展示所谓的“家”的页面上,使用在page.php文件

is_front_page() 

在主页上显示,但..我如何才能告诉其他页面而不是默认的前页?

在此先感谢

+1

只为不同的角色包含不同的脚本。然后你可以为每个“主页”编写一个脚本。 – arkascha

回答

2

可以使用get_template_part()功能:

get_template_part('home', get_user_role()); 

使用WordPress的模板层次,如果当前用户的角色为管理员,则模板会首先寻找家庭administrator.php,如果没有找到,那么它会回落到home.php

+0

但get_template_part()的问题我无法获得我用wordpress创建的特定页面。 我想在头版显示每个角色和特定的wordpress页面 – Weinz

+0

我不确定你的意思。你可以使用'get_template_part()'获取一个模板作为基于用户角色的主页。 –

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; 
} 
相关问题