从wordpress数据库查询作者信息

时间:2012-05-18 08:15:48

标签: php mysql wordpress

我的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>";
        }
    }

1 个答案:

答案 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。