サポート » 使い方全般 » カスタム投稿タイプのユーザー別の投稿数を取得したい

  • 解決済 minoritydog

    (@minoritydog)


    複数のカスタム投稿タイプを設定し
    複数のユーザー(投稿者)が投稿するサイトを作っています。

    特定のカスタムタイプの投稿数だけなら
    <?php echo wp_count_posts( 'post_type_name' )->publish; ?>
    で表示できるのですが、

    特定のカスタム投稿タイプにおいて
    投稿者別に投稿数を取得する方法が分かりません。

    どなたか解決策をご教授いただけますでしょうか。
    よろしくお願いします。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • $wpdbを駆使すれば取得出来ます。
    ちょうどユーザーの投稿数を取得するcount_user_postsという関数があるのでこれを参考にして

    <?php
    function count_user_posttype($userid,$posttype) {
    	global $wpdb;
    	$where = get_posts_by_author_sql($posttype, true, $userid,true);
    	$count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts $where" );
    	return $count;
    }
    ?>

    とかでどうでしょうか?(未検証なのでテスト環境で試してください)

    トピック投稿者 minoritydog

    (@minoritydog)

    ご連絡ありがとうございます。

    特定のカスタム投稿タイプのアーカイブのループの中に設置してみたのですが
    下記の様なエラーがでて表示できませんでした。
    Fatal error: Cannot redeclare count_user_posttype() (previously declared in ・・・
    サーバのパス・・・

    何か設定で間違いがありますでしょうか?

    上記関数はfunctions.phpの中に記入して
    表示させたい場所で
    <?php echo count_user_posttype($post->ID,”post”);?>
    等で試してみてください。
    post部分をカスタム投稿のタイプに変えれば多分動きます。

    トピック投稿者 minoritydog

    (@minoritydog)

    たびたびありがとうございます。

    functions.phpに記載して
    上記のように設定しましたが、エラーはでないのですが
    件数がどれも0となってしまいます。

    実際には、各カスタム投稿に複数ユーザーが投稿しているのですが
    反映されないようです。

    すみません。上の説明間違えました。pots->IDではなくユーザーのIDですね。

    トピック投稿者 minoritydog

    (@minoritydog)

    ありがとうございます。

    こちらで、思い通りの表示ができました。
    どこにもヒントがありませんでしたので助かりました。

    <?php echo count_user_posttype($post->post_author,"post");?>

    トピック投稿者 minoritydog

    (@minoritydog)

    解決済みとさせていただきます。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「カスタム投稿タイプのユーザー別の投稿数を取得したい」には新たに返信することはできません。