Formation PUB020 : WordPress, 2023 La base de données WordPress

31.2 La classe wpdb


WordPress met à la disposition des programmeurs la classe wpdb pour accéder à la base de données.

Tout le code WordPress, que ce soit dans le noyau, dans un thème ou dans une extension, doit utiliser cette classe pour effectuer des requêtes SQL.

Utilisation de la variable globale $wpdb

La variable $wpdb est une instance de la classe wpdb. Elle a été instanciée dans le noyau WordPress.

Elle est directement accessible dans le fichier functions.php de votre thème mais si elle doit être utilisée dans une fonction, la fonction devra débuter par une instruction global :

WordPress (PHP)

global $wpdb;

Préfixe des tables

En utilisant $wpdb pour effectuer une requête, on peut être assuré que les requêtes entrées fonctionneront peu importe le préfixe utilisé pour nommer les tables. 

WordPress (PHP)

$wpdb->query( "UPDATE $wpdb->comments SET comment_approved = '$status' WHERE comment_ID IN ('" . $comments_in . "')" );

Attention : ceci ne fonctionne que pour les tables du noyau WordPress. Si vous utilisez vos tables personnalisées, vous devrez monter son nom en utilisant $wpdb->prefix().

WordPress (PHP)

$table_categories = $wpdb->prefix . 'christiane_categories';

$resultat = $wpdb->get_results( "SELECT id, description FROM $table_categories ORDER BY description" );

Principales méthodes de $wpdb

Voici quelques méthodes de la classe $wpdb dont vous pourriez avoir besoin dans votre code. Des exemples pour chacune sont disponibles sur la documentation officielle de WordPress.

  • $wpdb->prepare : protection contre les injections SQL pour les requêtes qui utilisent des paramètres.
  • $wpdb->query : exécute une requête quelconque.
  • $wpdb->get_var : exécute une requête SELECT. Le résultat consiste en une seule donnée.
  • $wpdb->get_row : exécute une requête SELECT. Le résultat est un vecteur comprenant un élément par champ pour l'enregistrement donné par la requête.
  • $wpdb->get_col : exécute une requête SELECT. Le résultat est un vecteur comprenant un élément par enregistrement pour le champ demandé.
  • $wpdb->get_results : exécute une requête SELECT. Le résultat est un tableau à deux dimensions comprenant une colonne par champ et une ligne par enregistrement.
  • $wpdb->insert : ajoute un enregistrement dans une table donnée avec des valeurs données. Protection contre les injections SQL incluse.
  • $wpdb->replace : ajoute un enregistrement donné ou, s'il existait déjà, le met à jour. Protection contre les injections SQL incluse.
  • $wpdb->update : met à jour un enregistrement donné. Protection contre les injections SQL incluse.
  • $wpdb->delete : supprime un enregistrement. Protection contre les injections SQL incluse.
  • etc.

Pour plus d'information

« Class Reference/wpdb ». WordPress Codex. http://codex.wordpress.org/Class_Reference/wpdb

« Les tables personnalisées dans WordPress ». Nicolas Juen. http://blog.nicolas-juen.fr/2011/12/04/les-tables-personnalisees-dans-wordpress/

« WordPress Database Functions ». WP Engineer.com. http://wpengineer.com/1746/wordpress-database-functions/

« Développer pour WordPress : wpdb et les requêtes SQL ». Responsive Mind. http://www.responsive-mind.fr/developper-pour-wordpress-wpdb-et-les-requetes-sql/

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre