2016-03-27 1 views
1

Я использую Barcelona theme и мне нужно авторизоваться, которые разместились в определенной категории.Получить авторов, которые опубликовывают сообщения в категории

В моем шаблоне author.php у меня есть:

$barcelona_authors = get_users(array(
    'fields' => 'ID', 
    'who' => 'authors', 
    'order' => 'DESC', 
    'orderby'=> 'post_count' 
)); 

<?php 
foreach ($barcelona_authors as $barcelona_author_id) { 
    barcelona_author_box($barcelona_author_id, false); 
} 
?> 

Как получить авторов, которые размещены в категории ID 59?

Например, я попытался с:

$barcelona_authors = get_posts('category=59'); 

Но я получаю сообщение об ошибке. Любая помощь?

ОШИБКА:

Notice: Object of class WP_Post could not be converted to int in /home/wp-includes/author-template.php on line 296

+1

Что такое ошибка? – Technoh

ответ

0

Это было решение Barcelona theme:

$barcelona_posts = get_posts('cat=59'); 
$barcelona_author_ids = array(); 

foreach ($barcelona_posts as $k => $v) { 
    if (! in_array($v->post_author, $barcelona_author_ids)) { 
     $barcelona_author_ids[] = $v->post_author; 
    } 
} 

$barcelona_authors = get_users(array(
    'fields' => 'ID', 
    'who' => 'authors', 
    'order' => 'DESC', 
    'orderby'=> 'post_count', 
    'include' => $barcelona_author_ids 
)); 
0

Ваш get_posts('category=59') код должен работать. Я тестировал следующее на одной из моих тестовых Wordpress установки, и он работает (с другим идентификатором категории, конечно). Если вы получили сообщение об ошибке во время вызова get_posts, вам необходимо указать нам ошибку.

<?php 

    $category_posts = get_posts('category=59'); 
    $authors_ids = array(); 
    $authors = array(); 

    foreach($category_posts as $cat_post) { 
     $authors_ids[] = $cat_post->post_author; 
    } 

    // Not sure if you need more data than just the ID so here is what you need 
    // to get other fields. 

    foreach($authors_ids as $id) { 
     $user = get_user_data($id); 
     // Display name: $user->display_name; 
     // Nice name: $user->user_nicename; 
     // etc... 
    } 

?> 
Смежные вопросы