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
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
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à
Une question? N’hésitez pas !