2014-01-22 5 views
0

Я пытаюсь показать разные домашние страницы на основе роли пользователя. У меня есть 4 Differents страницы:Показать другую домашнюю страницу на основе роли пользователя

Главных - По умолчанию один Главной 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"; 
    } 
} 

Также я показываю страницу под названием «Home», чтобы показать на домашней странице, используя в 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()' get get template для использования в качестве домашней страницы на основе роли пользователя. –

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; 
} 
Смежные вопросы