我的 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>";
}
}
最佳答案
您只需要添加一个子选择即可计算每个用户的数量。
使用以下查询我基本上可以得到正确的结果:
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。
关于php - 从wordpress数据库查询作者信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10649097/