Последнее сообщение от каждого автора в WordPress - PullRequest
1 голос
/ 21 января 2012

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

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

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

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

(На самом деле пытались решить это весь день * * *)

1 Ответ

1 голос
/ 21 января 2012

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

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'

) ); 

Это покажет самые новые сообщения.

...