Die WordPress-Optionentabelle verstehen und damit arbeiten

In den vorangegangenen Teilen dieser Serie haben wir uns die Tabellen in der WordPress-Datenbank und die Beziehungen zwischen ihnen angesehen. 

In diesem Teil werde ich eine Tabelle behandeln, die sich von den anderen unterscheidet - der wp_options Tabelle. Wie Sie dem folgenden Diagramm entnehmen können, ist dies die einzige Tabelle, die für sich alleine steht:

Die Optionstabelle speichert eine andere Art von Daten als die anderen Tabellen: Statt Daten über den Inhalt Ihrer Site zu speichern, werden Daten über die Site selbst gespeichert. Daten werden mithilfe der Options-API oder der Einstellungs-API in die Optionstabelle geschrieben. Beide Optionen bestehen aus einer Reihe von Funktionen zum Hinzufügen, Aktualisieren und Löschen von Daten aus dieser Tabelle. 

Sie können vorhandenen Optionen Werte hinzufügen. Sie können der Tabelle auch neue Datensätze hinzufügen, wenn Sie neue Optionen erstellen möchten.

 In diesem Tutorial werde ich verschiedene Aspekte der Optionstabelle und Ihre Interaktion damit betrachten:

  • Zugang zum wp_options Tabelle
  • Struktur der wp_options Tabelle
  • Die bevölkern wp_options Tabelle
  • Die Options-API
  • Die Einstellungs-API

Ich werde nur einen Überblick über die APIs und ihre Interaktion mit der Optionstabelle geben. Wenn Sie mehr darüber erfahren möchten, lesen Sie die Tom McFarlin-Serie über die Einstellungs-API. 

Zugriff auf die wp_options-Tabelle

Als die wp_options Tabelle speichert Daten, die sich auf die Einrichtung und Verwaltung der gesamten Site beziehen, der Zugriff darauf ist eingeschränkt. Um Einstellungen und Optionen ändern zu können, müssen die Benutzer über die Verwaltungsoptionen Fähigkeit. Die einzige Standardbenutzerrolle mit dieser Funktion ist die Administratorrolle (und in Multisite die Netzwerkadministratorrolle).. 

Das bedeutet, wenn Sie Optionen hinzufügen müssen, auf die andere Benutzerrollen Zugriff haben, müssen Sie das zuweisen Verwaltungsoptionen Fähigkeit zu ihnen. Dies birgt Risiken, also nur wenn Sie sich sicher sind!

Struktur der wp_options-Tabelle

Die Optionstabelle hat eine ähnliche Struktur wie die drei Metadatentabellen. Es hat vier Felder:

  • option_ID
  • Optionsname
  • Optionswert
  • Autoload - Gibt an, ob die Option bei jedem Laden der Seite automatisch geladen wird - Standardeinstellung ist Ja in einer einzigen standortinstallation und Nein in Multisite.

Jeder Datensatz in der Optionsname Feld ist ein eindeutiger Wert: Wenn Sie einer Option mehr als einen Wert hinzufügen, speichert WordPress diesen Wert in einem Array im Optionswert Feld. Ein gutes Beispiel dafür ist der aktive_plugins Diese Option speichert ein Array von Plugins, die auf Ihrer Site aktiviert sind.

Beim Hinzufügen, Bearbeiten oder Löschen von Daten im wp_options Tabelle müssen Sie immer die angeben Optionsname, Wie ich später in diesem Tutorial zeigen werde.

Füllen der Tabelle "wp_options"

Das wp_options Tabelle wird aus einer von drei Quellen gefüllt:

  • die Standardeinstellungen-Bildschirme
  • Themenoptionen-Bildschirme
  • Einstellungen und Optionsbildschirme, die Sie über Plugins hinzufügen

In WordPress gibt es eine Reihe von Optionen, die Sie alle in der Optionsübersicht sehen können. Sie können aber auch Ihre eigenen erstellen.

Um neue Optionen in Ihrem Design oder Plugin zu erstellen, verwenden Sie die Options-API oder die Einstellungs-API. Ich werde diese weiter unten ausführlicher behandeln.

Verwenden der Options-API

Die Options-API besteht aus acht Funktionen, mit denen Sie Optionen hinzufügen, abrufen, aktualisieren oder löschen können:

Funktion Parameter Anmerkungen
add_option () Option $$ wert$ veraltet$ autoload
Nur Option $ Wird benötigt. Wenn es einen Datensatz mit Ihrem gibt Option $ Parameter als Wert seiner Optionsname In diesem Feld wird WordPress Ihre $ wert zu einem Array in der Optionswert Feld für diesen Datensatz, andernfalls wird ein neuer Datensatz erstellt.
delete_option () Option $ Löscht alle Felder für diese Option
get_option () Option $$ default
$ default (optional) ist der Standardwert, der zurückgegeben werden soll, wenn für die Option in der Datenbank kein Wert gespeichert ist.
update_option () Option $$ new_value
$ new_value ist der Wert, der die Optionswert Feld
add_site_option () Option $$ wert
Ähnlich zu add_site_option () fügt jedoch die Option netzweit in Multisite hinzu (was bedeutet, dass die Option in der wp_options Tisch und nicht die wp_XX_options Tisch wo XX ist die Site-ID). $ autoload ist nicht enthalten, da Site-Optionen in Multisite nicht automatisch geladen werden und dies nicht überschrieben werden kann.
delete_site_option () Option $
Das Gleiche wie delete_option () funktioniert aber netzweit in Multisite.
get_site_option () Option $$ default , $ use_cache
Ähnlich zu get_option () ruft jedoch die netzwerkweite Option in Multisite ab.
update_site_option () Option $$ wert
Identisch mit update_option () funktioniert aber netzweit in Multisite.

Beachten Sie, dass Sie beim Erstellen von Optionen entweder über die Options-API oder die Einstellungs-API Datensätze erstellen können, in denen kein Wert angegeben ist Optionswert Feld. Auf diese Weise können Site-Administratoren dieses Feld zu einem späteren Zeitpunkt auffüllen.

Verwenden der Einstellungs-API

Neben der Options-API können Sie auch die Einstellungs-API für die Interaktion mit Daten in verwenden wp_options Tabelle. Mit der Einstellungs-API können Sie Einstellungen erstellen, die Site-Administratoren zum Hinzufügen oder Aktualisieren von Daten in der Optionstabelle verwenden können. Sie fügen Ihren Optionen eine Benutzeroberfläche hinzu.

Die Einstellungs-API hat mehr zu bieten als die Options-API, daher werde ich sie hier nicht ausführlich behandeln, aber im Wesentlichen gibt es drei Elemente:

  • die Einstellung (die Daten in der wp_options Tabelle)
  • das Feld (das zum Hinzufügen und Bearbeiten von Daten verwendet wird)
  • Der Einstellungsabschnitt ist eine Gruppe von verwandten Feldern.

Die beiden Funktionen in der Einstellungs-API, die direkt mit der interagieren wp_options Tabelle sind wie folgt:

Funktion Parameter Anmerkungen
register_setting () $ option_group$ Optionsname$ sanitize_callback
Das $ Optionsname Parameter bezieht sich auf die Optionsname Feld in der wp_options Tabelle; Die anderen Parameter interagieren mit anderen Funktionen in der Einstellungs-API
unregister_setting () $ option_group$ Optionsname$ sanitize_callback
Deregistriert Einstellungen von der wp_options table - normalerweise mit Deaktivierungshaken für Designs oder Plugins verwendet.

Diese Funktionen fügen den Optionen in der Option keine Werte hinzu wp_options Tabelle, aber sie erstellen Einstellungen, für die Werte über andere Funktionen in der Einstellungs-API hinzugefügt werden können.

Zusammenfassung

Das wp_options Tabelle ist bei WordPress-Datenbanktabellen insofern einzigartig, als sie keine Beziehung zu den anderen Tabellen hat. Dies liegt daran, dass Daten über die Site oder das Netzwerk und nicht den Inhalt gespeichert werden. Um mit der Optionstabelle zu interagieren, können Sie die Funktionen der Options-API oder der Einstellungs-API verwenden. Außerdem können Sie Funktionen verwenden, die Daten netzweit in eine Multisite-Isolierung einfügen.

Im letzten Teil dieser Reihe werde ich auf Multisite eingehen, da hier einige zusätzliche Datenbanktabellen verwendet werden, die bisher in dieser Reihe nicht behandelt wurden, und außerdem mehrere Instanzen jeder der Kerntabellen erstellt werden, eine für jeden Standort.