最近、AnsPressというプラグインでQ&Aサイトを作る機会があったので、正直需要があるか全く分からないんですけど、回答数などのユーザー情報を取得するための簡単なスニペットを残しておきたいと思います。
AnsPress – Question and answer
基本となるコード
下のコードが、今回紹介しているユーザー情報を取得する時の基本形のようなものになります。
ここでは $user_args
で administrator
と ap_moderator
、subscriber
の情報を取得しているんですが、 role__in
の部分を author
のように変更すれば、取得するユーザーの権限を『著者』に変更することができます。
<?php
$user_args = array(
'ap_query' => true,
'role__in' => [ 'administrator', 'ap_moderator', 'subscriber' ],
);
$ap_user_query = new WP_User_Query( $user_args );
foreach ( (array) $ap_user_query->results as $user ) :
// ベストアンサー数取得などのコード
endforeach;
質問数を取得
指定したユーザーの質問数を取得するには、上の foreach
ループ内に下のようなコードを書きます。
$total_questions = ap_total_posts_count( 'question', false,$user->ID );
回答数を取得
回答数についても、foreach
ループ内に書きます。
$total_answers = ap_total_posts_count( 'answer', false, $user->ID );
ベストアンサー数
$best_a = ap_total_posts_count( 'answer', 'best_answer', $user->ID );
投票数(vote数)
$args = array(
'vote_type' => 'vote',
'vote_user_id' => $user->ID,
);
$votes = ap_count_votes( $args );
コメント数
$comment_count = ab_count_user_comments( $user->ID );