Obtenir le nombre d’articles et de commentaires de son blog WordPress en PHP

Publié le 05 juin 2009 par Tatam

Il est parfois utile lors de la conception d’un thème d’avoir un petit espace “statistiques” sur son blog WordPress. Par exemple, jusqu’à présent sur mon blog, était disponible un widget texte avec les informations suivantes :

  • Nombre d’articles
  • Nombre de commentaires

Mais ce widget n’est pas mis à jour automatiquement (c’est simplement du texte, donc tout à la main). Il fallait donc en finir . Je vous propose mon code PHP gratuitement que j’utilise régulièrement pour avoir le nombre d’articles et commentaires directement depuis la base de données.

Préparons les requêtes SQL :
Nous allons faire non pas une mais deux requêtes SQL. La première consiste à récupérer le nombre d’articles, et la seconde le nombre de commentaires :

  • Pour la première :
SELECT count(*) AS compteur
FROM `wp_posts`
WHERE post_status = "publish"
AND post_type = "post" ;
  • Pour la seconde :
SELECT count(*) AS compteur
FROM `wp_comments`
WHERE comment_approved = 1 ;

La première renvoie donc une valeur, le nombre d’articles. La seconde sera le nombre de commentaires.

Maintenant que nous avons nos résultats (Vous pouvez tester directement depuis PhpMyAdmin ) nous voulons les voir sur notre blog.
Pour mon cas j’ai choisi dans le pied de page (fichier footer.php) mais vous pouvez mettre ce script à l’endroit souhaité.

< ?php
// on se connecte à MySQL
$db = mysql_connect('localhost', 'LOGIN', 'MOTDEPASSE');
 
// on sélectionne la base
mysql_select_db('VOTRE_BASE',$db);
 
// on crée la requête SQL pour les articles
$sql = 'SELECT count(*) as compteur FROM `wp_posts` WHERE post_status = "publish" AND post_type = "post" ' ;
 
// on envoie la requête
$req = mysql_query($sql) or die('Erreur du gentil SQL !<br>'$sql'<br />'mysql_error());
 
// On s'occupe des commentaires
$sqlCom = 'SELECT count(*) as compteur FROM `wp_comments` WHERE comment_approved = 1' ;
 
// on envoie la requête
$reqCom = mysql_query($sqlCom) or die('Erreur du gentil SQL !<br />'$sql'<br />'mysql_error());
 
// on ferme la connexion à mysql
mysql_close();
 
// On affiche le résultat
$resultat = mysql_fetch_object($req) ; 
$resultatCom = mysql_fetch_object($reqCom) ;
 echo 'Il y a '$resultat->compteur' articles et '$resultatCom->compteur' commentaires sur ce blog.' ; 
?>

Et voilà Maintenant vous obtenez automatiquement le nombre d’articles et de commentaires de votre blog .
Une question? N’hésitez pas !