2012-05-29 4 views
1

Я хочу, чтобы отобразить автор роль в архиве и автор странице вне цикле я нашел этот код и он отлично работает в цикле Getting an author's role in WordpressDisplay Автор роль в архиве или автор странице

Но когда я добавляю это в архив и авторская страница, дающая мне предупреждение:

Warning: array_shift() expects parameter 1 to be array, null given in 

Как это решить?

ответ

2

Эти примеры используют функцию, которую я дал в своем ПОЛНЫЙ ОТВЕТHere. В файле functions.php:

function get_user_role($id) 
{ 
    $user = new WP_User($id); 
    return array_shift($user->roles); 
} 

В вашей странице архива:

if(have_posts()) : while(have_posts()) : the_post(); 
    $aid = $post->post_author; 
    echo get_the_author_meta('user_nicename', $aid).' | '.get_user_role($aid); 
endwhile;endif; 

Как для шаблона автора, Wordpress Codex on Author Templates имеет много полезной информации. Вы можете сделать что-то вроде этого:

<?php 
$curauth = (get_query_var('author_name')) ? get_user_by('slug', get_query_var('author_name')) : get_userdata(get_query_var('author')); 
echo $curauth->user_nicename.' | '.get_user_role($curauth->ID); 
?> 
+0

Прохладный! Я тестировал на разных шаблонах, и я считаю, что он работает нормально. Позвольте мне проверить мой шаблон и вернуться к вам. Большое спасибо –

+0

Это работает отлично. Большое спасибо. –