Vous avez peut-être remarqué que les sites Tuts + ont une section sur la page d'accueil où nous répertorions les publications les plus populaires du mois, en fonction du nombre de commentaires. Bien qu'il existe de nombreux plugins disponibles, il est toujours préférable d'écrire le code vous-même si vous le pouvez. Trop d'abstraction n'est jamais une bonne chose! Heureusement, une fois que nous avons appris à interroger la base de données WordPress, de telles tâches deviennent un jeu d'enfant.!
Préfère regarder cette vidéo sur Screenr?
Pour interroger la base de données WordPress, nous pouvons utiliser le $ wpdb-> get_results () méthode. En tant que paramètre, nous passons simplement une requête SQL. Dans cet exemple particulier, supposons que nous ne voulions afficher qu'une liste de publications populaires dans notre barre latérale. Nous pouvons utiliser la requête suivante:
$ pop = $ wpdb-> get_results ("SELECT id, post_title, comment_count FROM $ wpdb-> préfixe posts WHERE post_type =" post "ORDER BY comment_count DESC LIMIT 10");
id, post_title, et compteur de commentaire nos colonnes dans la base de données.
WordPress vous permettant de définir un préfixe personnalisé pour vos tables de base de données, nous devons extraire ce préfixe de manière dynamique en utilisant wpdb-> prefix posts. Dans ce cas, cela se traduit par "wp_posts". Ensuite, nous devons nous assurer que nous affichons uniquement les publications, et rien d’autre, telles que les pièces jointes ou les pages. Enfin, nous ordonnons comment_count. C'est le but de tout ça, non? Afficher les commentaires les plus commentés?
Maintenant que notre requête SQL a été exécutée, nous pouvons simplement utiliser une instruction foreach pour filtrer les résultats et les afficher sur la page..
$ pop = $ wpdb-> get_results ("SELECT id, post_title, comment_count FROM $ wpdb-> préfixe posts WHERE post_type =" post "ORDER BY comment_count DESC LIMIT 10"); foreach ($ pop as $ post):?>
Notez que la variable $ post aura accès à n’importe laquelle des colonnes que nous avons extraites. Dans notre cas, nous aurions accès à:
Si vous avez besoin du permalien, vous pouvez aussi sélectionner SELECT dans la colonne "guid" ou simplement utiliser get_permalink ($ post-> id) méthode, et passe l'id de la poste en conséquence.
Une fois que vous avez appris à interagir directement avec la base de données WordPress, vous disposez alors de beaucoup de pouvoir. C'est la partie visible de l'iceberg!
Ce tutoriel a été créé pour montrer comment interroger spécifiquement les tables de WordPress dans la base de données. Vraiment, à partir de WordPress 2.9, vous pouvez obtenir cet effet exact en utilisant query_posts () et en passant orderby = 'comment_count'. Mais rappelez-vous, tout se résume à la même chose: transmettre une requête SQL à la base de données.
Des questions? Merci de regarder ou de lire!