Les requêtes en bases dans WordPress

Les requêtes en bases

WordPress propose une classe globale qui permet de faire des requêtes SQL très facilement et surtout de façon sécurisée :$wpdb.
Dans classe $wpdb on retrouve tous les noms des tables qui sont natives à WORDPRESS comme la table des métas  ou celle des posts.

Afficher le nombre d’utilisateur du site

Voici un exemple de requête pour aller chercher le nombre d’utilisateurs du site, et l’afficher ensuite dans le dashboard ou n’importe où sur le site.

1

 

<?php global $wpdb;
$user_cont = $wpdb->get_var("SELECT COUNT (*) FROM $wpdb->users"); echo "<p>Le nombre d'utilisateur est de ($user_count)</p>";?>

Cette requête renvoie le nombre total d’utilisateurs à partir de la table .WP_users. On observe ici la syntaxe particulière, propre à WORDPRESS, le nom de la table est extrait de la globale $wpdb qui contient toutes les données de la base.

D’autres exemples de requêtes

On peut par exemple lancer la requête suivante pour savoir combien il y a d’articles. L’information est déjà présente dans le backoffice, mais cela peut permettre de placer l’information ailleurs dans le site :

<?php global $wpdb;
$post_count = $wpdb->get_var(
"SELECT COUNT(*) FROM $wpdb->posts WHERE post_status = 'publish' AND post_type='post'");
echo "Il y a {$post_count} articles au total";

Ici on fait appel à la colonne post_status de la table wp_posts pour n’afficher que les articles publiés.

On peut vouloir par exemple afficher le nombre de custom post type sur le site : on crée le custom post type « formation », et on lance la requête suivante:

<?php global $wpdb;
$formation = $wpdb->get_var(
"SELECT COUNT(*) FROM $wpdb->posts WHERE post_type = 'formation' AND post_status='publish'");
echo "Il y a {$post_count} formations au total";

 

Ici je fais appel à la colonne  post_type de la table wp_posts pour spécifiquement cibler le custom post type  « formation ».

On peut retrouver comme ça toute une foule de requêtes utiles sur le net. Il y a aussi bien sûr énormément de plugin qui permettent d’éviter les requêtes dans le code et qui font tout ce boulot à votre place !