1

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>";
        }
    }
4

1 に答える 1

2

ユーザーごとにこれを計算するには、サブセレクトを追加するだけです。

次のクエリを使用して、基本的に正しい結果を得ることができます。

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サブセレクトで正しい ID を参照できるように、クエリでテーブルに wp_users という名前を付けていることに注意してください。

于 2012-05-18T08:21:35.077 に答える