2012-01-20 16 views
1

私は28人のユーザーを持つWordpressサイトを持っており、各ユーザーから最新の投稿を取得したいと考えています(ユーザーあたり1つの投稿のみ)。私はDISTINCTとGROUP BYの両方を使ってカスタムSQLを試しましたが、成功しませんでした。ワードプレスの各作者からの最新投稿

これは私が来た最も近いものです。ユニークな投稿を取得しますが、最新のものではなく最も古い投稿を取得します。

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

これを解決する方法はありますか?

(実際には全体のF *弄ぶ天使の日にこれを解決しようとしたことがあり)

答えて

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' 

)); 

それは、最新の投稿を表示します。

関連する問題