【问题标题】:Wordpress - Total User Count who only have postsWordpress - 只有帖子的用户总数
【发布时间】:2011-02-17 23:16:21
【问题描述】:

我想显示在 Wordpress 上只有帖子的用户总数。我可以通过这个查询获得所有用户

<?php $user_count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->users;"); echo $user_count ?>

但是对于仅使用帖子的用户计数,我想我可能需要加入另一个表,有人有 sn-ps 吗?谢谢。

【问题讨论】:

    标签: php mysql wordpress


    【解决方案1】:

    我不使用 wordpress,但如果 http://codex.wordpress.org/images/8/83/WP_27_dbsERD.png 的架构与您使用的版本接近,那么您应该能够执行类似的操作

    SELECT COUNT(*) FROM wp_posts GROUP BY post_author 
    

    如果您想知道哪些用户有多少帖子,您可以发帖数

    SELECT COUNT(*) AS number_of_posts, u.user_login FROM 
    wp_user u, wp_post p WHERE u.ID = p.post_author HAVING number_of_posts > 0;
    

    【讨论】:

    • 谢谢,我遇到了很奇怪的事情,如果我在 phpmyadmin 运行第一个查询,它显示正确,但是当我在 php 回显该查询时,它显示错误,我不知道为什么,我的语法是这样的 get_var("SELECT COUNT(*) FROM wp_posts GROUP BY post_author");回声 $author_count ?>
    • 我不熟悉 wordpress DB api。我猜您可能需要 $wpdb->wp_posts 上的 $wpdb 前缀,就像您的示例代码中一样,或者 api 由于某种原因不喜欢 GROUP BY 子句有什么奇怪的 - 错误消息或不正确的输出?
    • 这是不正确的输出,我注意到的一件事是,在 wp_post,还有其他 post_type 也就是页面,所以我改变了这样的查询 SELECT COUNT(*) FROM wp_posts GROUP BY post_author AND post_type='post' ,它只在我的数据库中输出2,实际上它大约有30,我的查询错误吗?
    • 尝试 get_var("SELECT COUNT(DISTINCT post_author) FROM $wpdb->posts");回声 $author_count; ?>
    • 顺便说一句,您可能应该添加条件。 “和 post_status = '发布'”
    猜你喜欢
    • 2012-02-08
    • 2018-10-04
    • 1970-01-01
    • 2012-12-10
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 2023-01-18
    • 1970-01-01
    相关资源
    最近更新 更多