Comment puis-je y arriver? J'ai trouvé count_user_posts et get_users , mais comment pourrais-je les fusionner pour obtenir le résultat souhaité? Dois-je vraiment utiliser une WP DB Query?
Pour l'instant, la prise en charge de post_type
n'est pas disponible pour count_user_posts()
,
mettez donc le code ci-dessous dans le fichier functions.php du thème.
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 );
}
Maintenant, cette fonction prendrait user id
et post_type
en tant que paramètre post_type='post'
étant le paramètre par défaut et obtient le nombre de publications pour cet utilisateur pour le type de message concerné.
Vous pouvez le vérifier en faisant écho au point ci-dessous, où vous devez vérifier le nombre de messages par l'utilisateur.
$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.
Vous pouvez faire la même chose pour le type de message personnalisé. Maintenant, vous devez obtenir les identifiants d’utilisateur, passer à travers cette fonction et afficher le nom des auteurs ayant au moins un message ou un message.
Vous pouvez ajouter le code ci-dessous à l'endroit où vous souhaitez afficher la liste des utilisateurs avec un ou plusieurs messages.
$blogusers = get_users();
foreach ( $blogusers as $user ) {
if ( count_user_posts_by_type( $user->ID, 'post') ) {
echo $user->user_nicename . '</br>';
}
}
Le code ci-dessus répertorie tous les utilisateurs avec un ou plusieurs messages publiés de post_type
post
.