Initialisierung der WordPress-Klasse wpdb:
function funktionsname() {
global $wpdb;
}
Beispieltabelle wp_posts (verkürzt)
ID | post_title | post_status | post_type |
1 | Artikel 1 | publish | page |
2 | Artikel 2 | draft | post |
3 | Artikel 3 | publish | page |
Rückgabewerte der Klasse wpdb (Auswahl)
$wpdb->get_results
liefert alle Ergebniszeilen eine Datenbankabfrage
Beispiel:
function funktionsname() {
global $wpdb;
$abfrage=$wpdb->get_results("SELECT * FROM wp_posts WHERE post_title LIKE 'Artikel%'");
foreach ( $abfrage as $abfrage ) {
echo 'Beiträge: ' . $abfrage->post_title;
}
}
$wpdb->get_row
liefert nur eine Zeile einer Datenbankbfrage
Beispiel:
function funktionsname() {
global $wpdb;
$abfrage=$wpdb->get_row("SELECT * FROM wp_posts WHERE ID = 1");
echo $abfrage->post_title; // Artikel 1
}
$wpdb->num_rows
liefert die Anzahl der gefundenen Ergebnisse bzw. Tabellenzeilen
Beispiel:
function funktionsname() {
global $wpdb;
$abfrage=$wpdb->get_results("SELECT * FROM wp_posts WHERE post_status='publish'");
$anzahl=$wpdb->num_rows;
echo $anzahl." veröffentlichte Artikel"; // 2
}
$wpdb->prefix
Datenbankabfrage mit esc_sql() sicherer (Schutz vor SQL-Injection) machen:
Beispiel:
function funktionsname($suchbegiff) {
global $wpdb;
$vergleich=esc_sql($suchbegriff);
$abfrage=$wpdb-> get_results("SELECT * FROM wp_posts WHERE post_category LIKE '".$vergleich."'");
$anzahl=$wpdb->num_rows;
echo 'Treffer: ' . $anzahl;
}