Abgesehen von der Zusammenfassung, die wir als letzten Artikel dieser Serie bereitstellen werden, ist dies die letzte Erläuterung der WordPress-Codierungsstandards, die wir in dieser Serie behandeln werden.
Wir werden die Feinheiten von Datenbankabfragen und die Formatierung von SQL im Kontext Ihres Codes behandeln.
Natürlich wäre dies nicht ohne einen eigenen Satz von Einschränkungen: Im Allgemeinen gibt es bereits APIs, die verhindern können, dass wir SQL selbst schreiben müssen. Diese APIs erfassen jedoch nicht jeden einzelnen Fall, den wir tatsächlich benötigen.
Wie können Entwickler, die APIs implementieren, genau wissen, was und wie wir etwas bauen werden??
Zu diesem Zweck werden wir uns die APIs ansehen, die für die Ausführung von Datenbankabfragen verfügbar sind, wie sie verwendet werden, und dann, wie unsere eigenen Abfragen definiert werden, wenn die APIs nicht ausreichen.
Wie in der Einführung dieses Artikels erwähnt, gibt es eine Reihe von APIs, mit denen wir eigene Abfragen erstellen können, ohne SQL schreiben zu müssen.
Der Grund, warum es wichtig ist, sich mit diesen APIs vertraut zu machen und diese APIs zu erlernen, besteht darin, dass der von Ihnen geschriebene Code auf die Abstraktionsebene von WordPress geschrieben wird, um sicherzustellen, dass die Abfragen (bei der aktuellen Version) so optimal wie möglich sind..
Darüber hinaus erhöht sich die Wahrscheinlichkeit, dass jeder Code, den Sie heute schreiben, vor allem mit zukünftigen Versionen von WordPress kompatibel ist, da er wiederum auf der Abstraktionsebene von WordPress geschrieben wird.
Wenn sich das Tabellenschema ändert, die Parameter den verschiedenen Klauseln in der SQL-Zuordnung zugeordnet sind usw., müssen Sie sich keine Sorgen darüber machen, da die API sich darum kümmert.
Na und sind die von WordPress definierten Abfrage-APIs?
WP_Query
dient zur Abfrage von Informationen zu jedem Beitragstyp und den zugehörigen Autoren, Kategorien, Taxonomien, Typ, Status usw..WP_User_Query
soll verwendet werden, wenn Informationen aus der Benutzertabelle und der Usermeta-Tabelle abgerufen werden müssen. Außerdem können wir mit Rollen, benutzerdefinierten Feldern und mehr arbeiten.Es gibt auch andere WordPress-API-Methoden, die es sehr einfach machen, Daten aus verschiedenen Datenbanktabellen zu holen, von denen einige nicht einmal eine große Anzahl von Argumenten erfordern:
get_post_meta
ruft Metadaten ab, die einer bestimmten Post-ID zugeordnet sind. Es kann alle Metadaten oder den Wert für einen bestimmten Schlüssel abrufen.get_comment_meta
ruft Metadaten ab, die einer bestimmten Kommentar-ID zugeordnet sind. Es kann alle Metadaten oder den Wert für einen bestimmten Schlüssel abrufen.get_user_meta
ruft Metadaten ab, die einer bestimmten Benutzer-ID zugeordnet sind (beginnen Sie hier, ein Thema zu sehen?). Es kann alle Metadaten oder den Wert für einen bestimmten Schlüssel abrufen.Beachten Sie, dass der Zweck dieses Artikels nicht darin besteht, einen tieferen Einblick in jede dieser APIs zu erhalten (und es gibt noch mehr davon) - nur um sie denjenigen von Ihnen, die sie noch nicht verwendet haben, bekannt zu machen und eine zu geben kurze Definition, wann sie verwendet werden können.
Letzten Endes, diese sind die APIs, die Sie zuerst prüfen sollten, bevor Sie Ihre eigene SQL schreiben. Ich spreche hier aus Erfahrung: Es gab Zeiten, in denen ich Code (oder sogar Blog-Posts) geschrieben habe, die aufgegeben wurden, weil sie nicht die bewährten Methoden zum Abfragen der Datenbank verwendet haben.
Wie bereits erwähnt, können diese APIs jedoch nicht vorhersagen alles Fälle, in denen wir unsere Datenbankabfragen schreiben müssen. In diesen Situationen bietet WordPress ein Objekt, mit dem wir direkt mit der Datenbank interagieren können.
$ wpdb
Das bringt uns dazu $ wpdb
. Im Wesentlichen, $ wpdb
ist ein Objekt, das in WordPress verfügbar ist und es uns ermöglicht, direkt mit der Datenbank zu kommunizieren. Dies bedeutet, dass wir in der Lage sind, Roh-SQL zu schreiben und es für die zugrunde liegende Datenbank auszuführen.
Darüber hinaus können wir auswählen, wie die Daten zurückgegeben werden sollen: Arrays, Objekte, manchmal einzelne Werte usw. Tatsächlich bietet das Objekt die Möglichkeit, die folgenden Funktionen auszuführen:
WÄHLEN
Variablen, Zeilen, Spalten und generische ErgebnisseEINFÜGEN
ReihenAKTUALISIEREN
vorhandene ZeilenDie größte Sorge bei der Einführung von Raw SQL in Ihrem Projekt besteht möglicherweise darin, dass Sie Ihr Projekt für potenzielles böswilliges Verhalten öffnen. Obwohl Sie dies für jede Datenbanklogik tun könnten, ist die Wahrheit, dass APIs gute Arbeit leisten sollten, um uns vor so etwas zu schützen.
Im Allgemeinen tun sie es.
Aber $ wpdb
ist auch nicht davon ausgenommen. Es gibt bestimmte Möglichkeiten, eine Schnittstelle mit der Datenbank herzustellen, um Ihre Abfragen vor der SQL-Injection zu schützen.
Um einen Punkt aus den Coding Standards zu wiederholen:
Wenn Sie die Datenbank berühren müssen, wenden Sie sich an einige Entwickler, indem Sie eine Nachricht an die Mailingliste wp-hackers senden. Sie möchten möglicherweise eine Funktion für die nächste WordPress-Version erstellen, um die gewünschte Funktionalität abzudecken.
Kurz gesagt, wenn die API hinter dem fehlt, was Sie brauchen, dann $ wpdb
mag die beste Option sein, aber ich empfehle, sie nur zu verwenden, wenn Sie den Rest Ihrer Optionen ausgeschöpft haben.
An dieser Stelle haben wir die Codierungsstandards in einem Detail untersucht, von dem ich hoffe, dass Sie mit Informationen versorgt werden, die Sie zuvor beim Start dieser Serie nicht hatten.
Zum Abschluss dieses Beitrags möchte ich, dass jeder etwas haben möchte:
Wenn Sie das tun, sollten Sie Ihre Basen abgedeckt haben.
Im letzten Artikel dieser Serie finden Sie eine Kurzanleitung, in der alles zusammengefasst ist, was wir in der gesamten Serie besprochen haben.