Eigene Abfragen in WordPress schreiben

Mit benutzerdefinierten Abfragen können Sie beliebige Daten lesen und / oder bearbeiten. Sofort öffnet sich eine Welt neuer Möglichkeiten.


Warum benutzerdefinierte Abfragen verwenden??

Die grundlegenden Funktionen in WordPress sind für die meisten einfachen Anforderungen geeignet, aber was würden Sie tun, wenn Sie bestimmte Anforderungen implementieren möchten? Schreibst du vielleicht ein Plugin? Dann sollten Sie lernen, wie Sie SQL-Abfragen in WordPress jetzt verwenden können! Die offiziellen Referenzen finden Sie im WordPress-Codex (Benutzerdefinierte Abfragen und die WPDB-Klasse)..


Das wpdb Klasse

Diese globale WordPress-Klasse ist der Schlüssel für die Verwendung von Abfragen. Tatsächlich verwendet jede Funktion diese Klasse.


Verwenden Abfrage

Die Abfragefunktion benötigt eine Zeichenfolge, die die benutzerdefinierte Abfrage enthält. Der Rückgabewert ist eine Ganzzahl, die der Anzahl der betroffenen / ausgewählten Zeilen entspricht, und im Fehlerfall false.

 $ query = "SELECT COUNT (Apfel) VON Früchten"; $ wpdb-> query ($ query);

Ergebnisse bekommen

Diese Funktion ruft beim Ausführen einer Abfrage mehrere Zeilen ab. Standardmäßig ist das Ergebnis der Funktion ein Array.

 $ query = "SELECT * FROM wp_terms wt INNER JOIN wp_term_taxonomy wtt ON wt.term_id = wtt.term_id WHERE wtt.taxonomy = 'post_tag' UND wtt.count = 0"; $ wpdb-> get_results ($ query);

get_var

Dadurch wird eine Variable aus der Datenbank zurückgegeben. Das vollständige Ergebnis der Abfrage wird jedoch zur späteren Verwendung zwischengespeichert. Gibt NULL zurück, wenn kein Ergebnis gefunden wird.

 $ query = "SELECT COUNT (*) FROM Benutzer"; $ wpdb-> get_var ($ query);

get_row

Als Ergebnis der Funktion wird eine vollständige Zeile zurückgegeben. Dies kann ein Objekt, ein assoziatives Array oder ein numerisch indiziertes Array sein. NULL ist das Ergebnis, wenn keine übereinstimmenden Daten gefunden werden. result_type kann sein OBJEKT, ARRAY_A oder ARRAY_N (Objekt, assoziatives Array oder nummeriertes Array). Offset ist eine Ganzzahl mit einem Standardwert von 0.

 $ query = "SELECT * FROM wp_posts WHERE post_type = 'post'"; $ wpdb-> get_row ($ query, ARRAY_A, 3);

get_col

Verwenden Sie diese Funktion, um eine Spalte zu erhalten. Die Ausgabe wird ein dimensionales Array sein. Ein leeres Array wird zurückgegeben, wenn kein Ergebnis gefunden wird. Der zweite Parameter ist der Spaltenversatz.

 $ query = "SELECT * FROM wp_posts WHERE post_type = 'post'"; $ wpdb-> get_col ($ query, 3);

Vorbereitete Abfragen

Laut dem php.net Handbuch:

"Sie [vorbereitete Abfragen] können als eine Art kompilierte Vorlage für die SQL betrachtet werden, die eine Anwendung ausführen möchte, die mithilfe von variablen Parametern angepasst werden kann."

Sie können SQL-Abfragen vor SQL-Injection-Angriffen schützen. Kurz gesagt, Daten in Abfragen müssen vor dem Ausführen der Abfrage mit SQL gesichert werden, um Injektionsangriffe zu verhindern. Dies ist mit der Vorbereitungsmethode leicht möglich. Im folgenden Beispiel werden die Werte '10', 'Affe' und 'Apfel' bei Verwendung in dieser Methode mit Escapezeichen versehen.

 // Verwendung: $ wpdb-> prepare ('query' [, value_parameter, value_parameter…]); $ wpdb-> query ($ wpdb-> prepare ("INSERT INTO test_table (post_id, animal, food)) WERTE (% d,% s,% s)", Array (10, 'Affe', 'Apfel'))) ;

Einstellen von Fehlermeldungen

Mit dem können Sie Fehlermeldungen ein- und ausschalten show_errors und hide_errors Funktionen, Sie können aber auch drucken:

 $ wpdb-> show_errors (); $ wpdb-> hide_errors ();

Cache-Steuerung

Das Löschen des Caches kann mit der spülen Funktion.

 $ wpdb-> flush ();

Daten einfügen

 $ wpdb-> insert ($ table, $ data, $ format); $ wpdb-> insert ('foods', array ('fruit' => apple ',' year '=> 2012), array ('% s ','% d '));

Die verwendeten Parameter in der Reihenfolge sind:

  • Der Name der Tabelle, in die Daten eingefügt werden sollen
  • die einzufügenden Daten (Spalte => Wertepaare), ohne zu umgehen
  • ein Array von Formaten, die jedem Wert in zugeordnet werden können $ data. Wenn nicht vorhanden, werden alle Werte als Zeichenfolgen behandelt

Daten aktualisieren

 $ wpdb-> update ('foods', array ('fruit' => 'apple', // string 'year' => 'value2' // ganze Zahl (number)), array ('ID' => 1), array ('% s', // value1 '% d' // value2), array ('% d'));

Die verwendeten Parameter in der Reihenfolge sind:

  • Tabellenname
  • Daten
  • wo bedingungen
  • Format
  • where_format

Spalteninformationen

Mit dieser Funktion erhalten Sie Informationen zu den Spalten des neuesten Ergebnisses. Wenn eine Funktion eine zurückgegeben hat OBJEKT und es gibt Eigenschaften, von denen Sie nicht viel wissen, dies kann nützlich sein.

 $ wpdb-> get_col_info ('type', offset);
  • Geben Sie Folgendes ein: die Informationen, die Sie abrufen möchten. Einige Beispiele finden Sie hier
    • Name - Spaltenname (dies ist die Standardeinstellung)
    • Tabelle - Name der Tabelle, zu der die Spalte gehört
    • maximale Länge - maximale Länge der Säule
    • nicht null - 1, wenn die Spalte nicht NULL sein kann
    • Weitere Informationen finden Sie in der WordPress Codex WPDB-Referenz
  • Offset: Geben Sie die Spalte an, aus der Informationen abgerufen werden sollen (0 ist die erste Spalte).

Referenzieren von WordPress-Tabellen

Auf WordPress-Datenbanktabellen kann im verwiesen werden wpdb Klasse. Dies ist sehr praktisch, da Tabellennamen sich von den Standardnamen unterscheiden können. Hier ist eine Liste von WordPress-Datenbanktabellenreferenzen:

  • $ wpdb-> Beiträge;
  • $ wpdb-> postmeta;
  • $ wpdb-> Kommentare;
  • $ wpdb-> commentmeta;
  • $ wpdb-> terms;
  • $ wpdb-> term_taxonomy;
  • $ wpdb-> term_relationships;
  • $ wpdb-> Benutzer;
  • $ wpdb-> usermeta;
  • $ wpdb-> Links;
  • $ wpdb-> Optionen;

Beachten Sie, dass wir das Präfix nicht angeben müssen wpdb Die Klasse kümmert sich darum für uns.

Da haben wir es! Eine Referenz für benutzerdefinierte Abfragen in WordPress, alles an einem Ort für Sie.