2012-01-20 5 views
1

У меня есть сайт Wordpress с 28 пользователями и вы хотите получить последнее сообщение от каждого пользователя (всего одно сообщение для каждого пользователя). Я пробовал использовать пользовательский sql, используя как DISTINCT, так и GROUP BY, но безуспешно.Последнее сообщение от каждого автора в wordpress

Это ближайший я пришел. Он извлекает уникальные сообщения, но самый старый пост вместо самого нового.

function last_post_per_user() { 
    global $wpdb; 
    return $wpdb->get_results('SELECT ID FROM '.$wpdb->posts.' WHERE post_status=\'publish\' AND post_type=\'post\' AND post_author!=\'1\' GROUP BY post_author'); 
} 

$posts = last_post_per_user(); 

foreach ($posts as $post) { 
    $post_id[] = $post->ID; 
} 

query_posts(array( 
    'post_type'   => 'post', 
    'posts_per_page' => 10, 
    'post__in'   => $post_id 
)); 

У кого-нибудь есть предложения по тому, как это решить?

(фактически пытались решить эту все е * Cking день)

ответ

1

Попробуйте заменить это:

query_posts(array( 
    'post_type'   => 'post', 
    'posts_per_page' => 10, 
    'post__in'   => $post_id 
)); 

с этим:

query_posts(array( 
    'post_type'   => 'post', 
    'posts_per_page' => 10, 
    'post__in'   => $post_id, 
    'orderby'   => 'date', 
    'order'    => 'DESC' 

)); 

Он покажет новейшие сообщения.