どうやってそれを達成できますか? count_user_posts と get_users を見つけましたが、どうすればそれらを希望の結果にマージできますか?本当にWP DB Queryを使う必要がありますか?
今のところpost_type
のサポートはcount_user_posts()
では現在利用できません、
そのため、テーマのfunctions.phpファイルに以下のコードを追加してください。
function count_user_posts_by_type( $userid, $post_type = 'post' ) {
global $wpdb;
$where = get_posts_by_author_sql( $post_type, true, $userid );
$count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts $where" );
return apply_filters( 'get_usernumposts', $count, $userid );
}
これで、この関数はuser id
とpost_type
をパラメータpost_type='post'
としてデフォルトとし、関係するpost_typeについてそのユーザーの投稿数を取得します
あなたはあなたがユーザーによって投稿カウントをチェックする必要があるところで以下をエコーすることによってそれを確かめることができます。
$user_posts = count_user_posts_by_type( 1, 'page' );
echo $user_posts; // This would return the post count for user id 1 and post_type page.
カスタム投稿タイプでも同じことができます。これで、ユーザーIDを取得してこの関数を通過し、1つ以上の投稿を持つ著者の名前を表示する必要があります。
以下のコードを追加して、1つ以上の投稿を持つユーザーのリストを表示します。
$blogusers = get_users();
foreach ( $blogusers as $user ) {
if ( count_user_posts_by_type( $user->ID, 'post') ) {
echo $user->user_nicename . '</br>';
}
}
上記のコードはpost_type
post
の公開された1つ以上の投稿を持つすべてのユーザーをリストします。