我的Wordpress博客中有一个作者页面,但我也希望将每位作者的帖子数量显示为一个数字。我对数据库查询了解不多,所以我想知道如何使用每个用户的帖子数来扩展以下查询。
到目前为止,这是我的代码:
function contributors() {
global $wpdb;
$authors = $wpdb->get_results("SELECT ID, user_nicename from $wpdb->users WHERE display_name <> 'admin' ORDER BY display_name");
foreach ($authors as $author ) {
echo "<li>";
echo "<div class='author-image'>";
echo "<a href=\"".get_bloginfo('url')."/?author=";
echo $author->ID;
echo "\">";
echo userphoto($author->ID);
echo "</a>";
echo "</div>";
echo "<div class='meta'>";
echo "<h2 class='author-name'>";
the_author_meta('display_name', $author->ID);
echo "</h2>";
echo "<span class='count'>";
count_user_posts($author->ID); //Not working
echo " Articles</span>";
echo "<p class='description'>";
the_author_meta('description', $author->ID);
echo "</p>";
echo "<span class='top-dotted'></span>";
echo "</div>";
echo "</li>";
}
}
答案 0 :(得分:1)
您只需添加一个子选择来计算每个用户。
我可以使用以下查询基本上获得正确的结果:
SELECT ID,
user_nicename,
(select count(*) from wp_posts where post_author=w.ID) as posts
FROM wp_users w
WHERE display_name <> 'admin'
ORDER BY display_name
请注意,我在查询w
中将表格命名为wp_users,因此我们可以在子选择中引用正确的ID。