Inzwischen wissen Sie, dass diese Serie dazu dient, zu demonstrieren, wie WordPress als Grundlage für die Entwicklung von Webanwendungen verwendet werden kann.
Wir begannen mit einem umfassenden Überblick über viele Designmuster von Webanwendungen, wie sich WordPress unterscheidet und warum WordPress eher als Grundlage und nicht als Rahmen betrachtet werden sollte.
In den letzten Artikeln haben wir uns mit Benutzerrollen, Berechtigungen, Sitzungsverwaltung, E-Mail und Datenserialisierung befasst. Wenn Sie jedoch Daten in der Datenbank speichern, ist es nur sinnvoll, dass Sie sie abrufen, richtig?
Glücklicherweise machen die von WordPress verfügbaren APIs das Abrufen von Informationen aus der Datenbank sehr einfach. Wenn Sie den letzten Artikel als leicht zu befolgen gefunden haben, sollten Sie diesem Artikel auch problemlos folgen, da viele der Prinzipien gleich sind:
Nichts fürchterlich kompliziert, richtig?
Und das ist es wirklich nicht - vor allem, weil es die gleichen APIs (wenn auch unterschiedliche Funktionen) nutzt, die wir zum Speichern von Informationen in der Options- und Metadatentabelle verwendet haben. In diesem Artikel setzen wir unsere Diskussion über das Abrufen von Informationen fort sowie darüber, wie sichergestellt werden kann, dass Informationen ordnungsgemäß umgangen werden, um sicherzustellen, dass die Daten für das Rendern im Browser sicher und sauber sind.
Wie ich bereits in früheren Artikeln erwähnt habe, ist die Datenspeicherung eines der Hauptunterscheidungsmerkmale zwischen einer normalen Website und einer Webanwendung.
Und da WordPress seine eigene Datenbank verwendet, um den Datenspeicher zu verwalten und APIs für unsere eigenen Projekte zur Verfügung zu stellen, handelt es sich offensichtlich um eine Webanwendung.
Wie ich im letzten Artikel besprochen habe, ist das Verstehen, wie Daten mit den richtigen APIs gespeichert werden sollen, sehr einfach. Wenn Sie erst einmal gelernt haben, wie man eine verwendet, ist die Verwendung der übrigen fast genauso einfach. Darüber hinaus ist es wahrscheinlich noch einfacher zu lernen, wie man Daten abruft.
Allerdings gibt es einige Nuancen, die wir beim Abrufen von Daten berücksichtigen müssen. Zuerst überprüfen wir jedoch die Datenbank, schauen uns an, wie man Informationen abruft, und dann schauen wir uns an, wie die Informationen ordnungsgemäß gesperrt werden, bevor sie an den Browser zurückgegeben werden.
Im vorherigen Artikel haben wir eine detaillierte Übersicht der Tabellen, in die Sie schreiben können. Sie können dies im ersten Artikel ausführlicher lesen, aber hier ist eine Zusammenfassung der Tabellen, die wir besprochen haben:
wp_options
wp_posts
wp_postmeta
wp_kommentare
wp_commentmeta
Denken Sie daran, Sie können all dies und mehr auf der Datenbankbeschreibungsseite im WordPress-Codex überprüfen.
Mit dieser Auffrischung ist es also an der Zeit, tatsächlich nachzusehen, wie Informationen aus der Datenbank abgerufen werden.
Glücklicherweise ist es genauso einfach wie das Schreiben von Informationen in die Datenbank. Die zwei Hauptunterschiede sind:
Bevor wir uns mit der Verwaltung der Daten befassen, wollen wir uns zunächst mit dem Lesen von Optionen aus der Datenbank befassen.
Erinnern Sie sich an den letzten Artikel, dass die Art und Weise, wie wir Daten in die Optionstabelle schreiben, die Verwendung von ist add_option
oder der get_option
Funktionen.
Denken Sie daran: Jeder nimmt einen eindeutigen Schlüssel auf, der zur Identifizierung des Werts in der Datenbank und des diesem Schlüssel zugeordneten Werts verwendet wird. In unserem vorherigen Beispiel habe ich Folgendes gezeigt:
if (isset ($ _POST ['value']) &&! empty ($ _POST ['value']) $ clean_value = strip_tags (striplashes ($ _POST ['value'])); add_option ('my-value', $ clean_value);
Dies bedeutet, dass wir Informationen mit dem Befehl bereinigt und in der Datenbank gespeichert haben mein Wert
Schlüssel.
Um diese Informationen aus der Datenbank abzurufen, führen wir den folgenden Aufruf aus:
$ my_value = get_option ('my-value');
Es ist fast zu einfach.
Aber es gibt einen Haken an der get_option
Funktion: Wir können tatsächlich einen Standardwert angeben, der zurückgegeben werden soll, wenn noch keiner vorhanden ist.
Nehmen wir beispielsweise an, wir suchen einen Wert für den Schlüssel dein Wert
, das gibt es nicht.
// $ your_value ist tatsächlich gleich FALSE $ your_value = get_option ('your-value');
In diesem Fall kehrt die Funktion zurück FALSCH
; Wenn wir jedoch einen zweiten Parameter angeben, können wir einen Standardwert zurückgeben:
// $ your_value entspricht tatsächlich einer leeren Zeichenkette $ your_value = get_option ('your-value', ");
Sogar noch nichts schrecklich kompliziertes, richtig?
Bevor wir uns ansehen, wie Informationen aus den Metatabellen abgerufen werden können, ist es erwähnenswert, dass Informationen genauso wie mit Informationen festgelegt werden set_theme_mod
, Wir können auch Theme-Einstellungen mit abrufen get_theme_mod
.
Direkt aus dem WordPress-Codex:
Ruft eine Änderungseinstellung für das aktuelle Design ab. Zusammen mit
set_theme_mod ()
Diese Funktion bietet Designentwicklern manchmal eine einfachere Alternative zur Einstellungs-API, wenn grundlegende themenspezifische Einstellungen vorgenommen werden müssen.
Wiederum ist dies offensichtlich für die Arbeit mit Themen gedacht. Ich wollte es jedoch hier erwähnen, um vollständig zu sein, und um die Diskussion abzuschließen, die im vorherigen Artikel begann.
Ansonsten soll dies lediglich zeigen, wie Optionen gespeichert werden können, je nachdem, wie Sie mit der Themenentwicklung arbeiten. Es ist jedoch wirklich außerhalb des Anwendungsbereichs der Serie zur Anwendungsentwicklung.
Zurück zu den Datenbanktabellen, die eher für die Anwendungsentwicklung und sogar für das Content Management geeignet sind.
Im letzten Artikel habe ich die API-Funktionen gezeigt, die für das Schreiben von Informationen in die Metadatentabellen verantwortlich sind. Im Einzelnen habe ich die folgenden Funktionen beschrieben:
add_post_meta
update_post_meta
add_comment_meta
update_comment_meta
In ähnlicher Weise wie beim Rest der Options-API ist das Abrufen von Informationen aus jeder dieser Tabellen sehr einfach, außer, es wird mit einem einzigen "Gotcha" geliefert. Standardmäßig werden alle Informationen, die von diesen Funktionen zurückgegeben werden, in Form einer Array.
Das bedeutet, wenn Sie anrufen:
$ my_data = get_post_meta (get_the_ID (), 'my-post-information');
Dann werden die Daten in einem Array an Sie zurückgegeben. Wenn Sie jedoch weitergeben möchten WAHR
Wenn Sie die Funktion beim Aufruf aufrufen, werden Ihnen die Daten in einem String zurückgegeben:
$ my_data = get_post_meta (get_the_ID (), 'my-post-information', TRUE);
Natürlich gibt es keine Recht Weg dies zu tun. Es hängt vielmehr davon ab, welche Informationen Sie zurückgeben möchten und / oder wie sie zurückgegeben werden sollen. Da es keine einzige Möglichkeit gibt, dies zu tun, müssen Sie Ihre Nutzung anhand der Implementierung Ihrer Anwendung beurteilen.
So wie wir Informationen vor dem eigentlichen Schreiben in die Datenbank bereinigen mussten, ist es auch wichtig, dass die Daten ordnungsgemäß gesichert werden, nachdem sie aus der Datenbank abgerufen wurden, bevor sie jedoch in den Browser gerendert werden.
Das Entweichen von Daten ist der Prozess, durch den wir sicherstellen, dass die Daten, die wir dem Benutzer zur Verfügung stellen, sicher sind. Es ist im Wesentlichen die Desinfektion der Daten. es ist jedoch fertig nach dem Die Daten wurden aus der Datenbank abgerufen und nicht vor dem Schreiben in die Datenbank erstellt.
Bei der Annahme von Daten gibt es vier Hauptfunktionen, die wir kennen sollten:
esc_html
wird verwendet, um HTML-Blöcke zu umgehen.esc_url
In diesem Fall müssen Sie URLs bereinigen, die in Textelemente, Attributknoten oder an eine andere Stelle im Markup geschrieben werden.esc_js
wird verwendet, um Textzeichenfolgen zu schützen, die für das Echo von JavaScript verwendet werden, hauptsächlich Inline-JavaScript.esc_attr
codiert mehrere Zeichen, die die Ausgabe beeinträchtigen können, wenn sie nicht ordnungsgemäß verarbeitet werden.Das Schöne daran ist, dass sie in der Regel genauso funktionieren und es ist relativ einfach zu bestimmen, welchen Typ Sie verwenden müssen:
esc_js
,esc_attr
.Leicht genug, richtig?
Nehmen wir zum Beispiel an, Sie wollten ein Attribut eines Eingabefeldes, das aus dem Feld kommt, mit einem Escapezeichen versehen $ _POST
Sammlung. Dazu schreiben Sie den folgenden Code:
'; ?>
Es sind kleine Dinge wie diese, die wesentlich dazu beitragen können, dass Ihre Anwendung sowohl bei der Datenserialisierung als auch beim Datenabruf robust ist.
Wir haben in dieser Serie eine Menge Boden hinter sich gebracht, aber es gibt noch mehr zu tun.
Ein typisches Beispiel: Eine der schönsten Funktionen einiger der bekannteren Webanwendungs-Frameworks besteht darin, wie sie mit URLs umgehen. Kurz gesagt, sie bieten saubere URL-Schemata, mit denen die verschiedenen Aktionen, die für die in der gesamten Anwendung verwendeten Datenmodelle verfügbar sind, wirklich verständlich werden.
WordPress bietet nicht die saubersten oder klarsten URLs. dies jedoch können durch die Verwendung der Rewrite-API geändert werden. Im nächsten Artikel werden wir uns genauer ansehen, wie wir benutzerdefinierte Regeln für saubere URLs einführen können, die denen ähneln, die Sie in einer Webanwendung und nicht in einem Content-Management-System oder einem Blog sehen würden.