php - 从wordpress数据库查询作者信息

标签 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>";
        }
    }

最佳答案

您只需要添加一个子选择即可计算每个用户的数量。

使用以下查询我基本上可以得到正确的结果:

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/

相关文章:

php - 通过 PHP 代表其他人发送电子邮件

php - Symfony 未捕获异常 - 'The process has been signaled with signal "9"

PHP MySQL 从数据库推送和拉取

stored-procedures - mysql存储过程: using declared vars in a limit statement returns an error

css - 延迟后出现 Wordpress CSS 更新

javascript - 形成多个复选框,限制可以选择的数量

MySQL - 计算事件之间的时间差 - LEFT JOIN、TIMEDIFF、MAX

php - 使用一项 Web 服务 iOS 执行多个 MySQL 查询

javascript - 更改css文件中的div样式

javascript - 简单的 jQuery scrollTo 在我的网站上不起作用