2014-01-22 55 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; 
} 
相關問題