[AUTOMATIQUE] Cet article a plus de 5 ans.
Il se peut donc que les informations qu'il fournit ne soient plus totalement exactes.

Voilà un petit snippet bien utile et simple de mise en place. Il permet tout simplement de compter le nombre de posts publiés par un utilisateur. Vous pouvez choisir quel Posts Type prendre en compte (cf commentaire dans le code).
Notez que cette fonction compte un paramètre, il s’agit de l’ID de l’utilisateur dont on veut connaitre le compteur de posts.

Par exemple, pour afficher le nombre de posts d’un auteur (ID 1) à la fin d’un article il faut faire :

<?php echo count_post_all_types (1); ?>

Autre exemple si on veut que l’utilisateur authentifié connaisse le nombre de post qu’il a publié :

<?php echo count_post_all_types (get_current_user_id()); ?>

Le code PHP à coller dans functions.php de son thème:

//fonction pour compter le nombre de posts d'un user
function count_post_all_types ($user_ID){
	global $wpdb;

	if(empty($user_ID))
		return 0;

	//on sélectionne bien tous les types de contenus voulus
	$post_type = array('post', 'TYPE_DE_CONTENU_SUP1', 'TYPE_DE_CONTENU_SUP2');
	$sql = $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = %d AND post_status = 'publish' AND ", $user_ID );

	//Inclure les CPT dans la requête
	if(!empty($post_type)){
		$argtype = array_fill(0, count($post_type), '%s');
		$where = "(post_type=".implode( " OR post_type=", $argtype).') AND ';
		$sql .= $wpdb->prepare($where,$post_type);
	}

	$sql .='1=1';
	return $count_p = $wpdb->get_var($sql);
}

Article rédigé parBrice CAPOBIANCO

Autodidacte passionné par WordPress. J'aime apprendre et créer pour ensuite partager !

Coorganisateur des Meetups WordPress Rennes et fondateur de bweb.
Partager cet article

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Afficher le commentaire

1 commentaire

  1. Bonjour
    Un grand merci pour ce bout de code qui me simplifie les choses
    j’ai pu afficher le nombre de posts par utilisateur et j’aurai besoin d’avoir le décompte par utilisateur et par catégorie en même temps
    autrement dit avec un résultat par utilisateur du type : articles = 10 / Témoignage = 2 …
    Pourriez vous s’il vous plait m’aider, car cela devient un peux compliqué pour moi
    Merci d’avance pour ce que vous pourrez faire
    Manuel