Boa tarde, estou a tentar listar o top de autores de um blog em wordpress (para o mês actual).
neste momento tenho o seguinte código:
(foi feito com base neste post
http://wordpress.org/support/topic/top-authors#post-489916 )
<?php function top_posters_this_month() {
echo '<ul>';
$order = 'postcount';
$limit = '5';
$usersinfo = $wpdb->get_results("SELECT $wpdb->users.ID as ID, COUNT(post_author) as postcount FROM $wpdb->users LEFT JOIN $wpdb->posts ON $wpdb->users.ID = $wpdb->posts.post_author WHERE post_type = 'post' GROUP BY post_author ORDER BY $order DESC LIMIT $limit");
foreach($usersinfo as $userinfo) : // start authors' profile "loop"
$user = get_userdata($userinfo->ID);
$user->postcount = $userinfo->postcount;
echo '<li><a href="' . $user->user_url . '">' . $user->display_name . '</a>' . $user->postcount . '<br /></li>';
endforeach; // end of authors' profile 'loop'
echo '</ul>';
} ?>
No entanto este código é para os top posters de sempre, e eu quero só os de um dado mês
Muito provavelmente basta mudar a clausula WHERE deste select para limitar pela data da tabela posts:
SELECT $wpdb->users.ID as ID, COUNT(post_author) as postcount
FROM $wpdb->users LEFT JOIN $wpdb->posts ON $wpdb->users.ID = $wpdb->posts.post_author WHERE post_type = 'post'
GROUP BY post_author
ORDER BY $order DESC LIMIT $limit"
Mas não sei se essa tabela tem de facto data, nem se é mesmo isso que quero fazer...dado que pode afectar a contagem dos posts.
Alguém sabe como se faz isto?
Cumps.