2010-05-11 4 views
1

Je veux afficher le nombre total d'utilisateurs qui n'ont que des messages sur Wordpress. Je peux obtenir tous les utilisateurs par cette requêteWordpress - Nombre total d'utilisateurs qui n'ont que des messages

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

Mais pour l'utilisateur compte que les messages, je pense que je pourrais avoir besoin de se joindre à une autre table, quelqu'un at-il des extraits? Merci.

Répondre

1

Je n'utilise wordpress, mais si le schéma à http://codex.wordpress.org/images/8/83/WP_27_dbsERD.png est proche de la version que vous utilisez, vous devriez être en mesure de faire quelque chose comme

SELECT COUNT(*) FROM wp_posts GROUP BY post_author 

Si vous voulez savoir quels utilisateurs eu ce nombre de postes que vous pourriez faire

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; 
+0

merci, je me suis très étrange chose, si je lance la première requête à phpmyadmin, il montre bien, mais quand je fais l'écho de cette requête à php, il montre mal, je ne Je ne sais pas pourquoi, ma syntaxe est comme ça get_var ("CHOISIR COUNT (*) FROM wp_posts GROUP BY post_author"); echo $ author_count?> – knightrider

+0

Je ne suis pas familier avec l'API DB wordpress. Je suppose que vous avez besoin du préfixe $ wpdb sur $ wpdb-> wp_posts comme dans votre exemple de code ou que l'API n'aime pas la clause GROUP BY pour une raison quelconque Quelle est la chose étrange - un message d'erreur ou une sortie incorrecte ? –

+0

c'est une sortie incorrecte, et une chose que j'ai remarquée est, à wp_post, il y a aussi post_type, qui est page, donc j'ai changé la requête comme ceci SELECT COUNT (*) FROM wp_posts GROUP BY post_author ET post_type = 'post', il ne sort que 2 dans ma base de données, en fait il a environ 30, ma requête est-elle fausse? – knightrider

Questions connexes