Für den Zugriff auf die WordPress Datenbank ist die Klasse wpdb zuständig. Sie fungiert als Schnittstelle zur Datenbank und stellt die dafür benötigten Funktionen bereit.
Die Methoden der Klasse wpdb sollten nicht direkt aufgerufen werden, denn dafür steht das globale Objekt $wpdb bereit!
$wpdb ist eine Instanz der Klasse wpdb und kann als globale Objekt Variable verwendet werden.
Bevor du auf die Datenbank zugreifen kannst, muss du $wpdb mit dem Schlüsselwort „global“ als globale Variable deklarieren.
1 2 |
<?php global $wpdb; |
Du kannst übrigens nicht nur auf die von WordPress erstellten Tabellen zugreifen. Auch das Auslesen von Tabellen die von Plugins erstellt wurden ist möglich.
Einzelne Werte mit get_var() auslesen
Über die Funktion get_var() kann ein einzelner Wert ermittelt werden.
1 2 3 4 |
$countPosts = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts" ); echo "Ich habe {$countPosts} Posts gezählt."; |
Es wird immer nur der Wert der ersten Spalte in der ersten Zeile, aus dem Ergebnis der Abfrage, zurückgegeben. Es ist aber möglich über weitere Parameter den Wert einer anderen Spalte aus einem anderen Datensatz auszuwählen.
Variablen mit prepare() verwenden
Werden für die Abfrage Variablen benötigt sollte die Funktion prepare() verwendet werden.
Es handelt sich dabei um kein „Prepared Statement“ sondern nur um eine Erleichterung bei der Erstellung der SQL Abfrage. Insbesondere die Einbindung von String Variablen wird erleichtert.
1 2 3 4 5 6 |
$postTitle = $wpdb->get_var( $wpdb->prepare( "SELECT post_title FROM $wpdb->posts WHERE ID = %d", $postId ) ); echo "Der Titel des Posts mit der ID {$post_id} hat den Titel {$postTitle}."; |