簡體   English   中英

根據用戶角色顯示不同的主頁

[英]Show different home page based on user role

我正在嘗試根據用戶角色顯示不同的主頁。 我有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中顯示主頁上顯示的名為“Home”的頁面

is_front_page()

但是..我怎么能顯示其他頁面而不是默認的首頁?

提前致謝

您可以使用get_template_part()函數:

get_template_part('home', get_user_role());

使用WordPress的模板層次結構,如果當前用戶的角色是Administrator,那么模板將首先查找home-administrator.php ,如果找不到,那么它將回退到home.php

首先將(靜態)首頁設置為默認設置,然后使用選項過濾器根據用戶覆蓋設置。

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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM