Es gibt keine Notwendigkeit zu fragen, warum jemand ein Plugin für WordPress schreiben möchte. Es ist eines der Hauptmerkmale, das WordPress so flexibel und passend für eine Vielzahl von Projekten macht. Im der erste Teil unserer Serie Wir haben die Basis für ein WordPress-Plugin geschaffen, das durch den Kern erkennbar ist. Dann in der zweite Teil Wir haben gelernt, die Standardfunktionalität des Kerns zu ändern. Heute werden wir uns die Plugin-Optionen ansehen. Dies ist eine der häufigsten Aufgaben, die Plugins ausführen müssen.
Normalerweise müssen Sie eine Reihe von Parametern (Optionen) erstellen und dem Benutzer die Möglichkeit geben, ihnen geeignete Werte zuzuweisen. Werte werden in der Datenbank gespeichert und können auf Anfrage abgerufen werden. Das Plugin führt normalerweise verschiedene Aktionen basierend auf diesen Werten durch, um beispielsweise unterschiedliche Ausgaben zu erzeugen.
Welche Werkzeuge gibt uns WordPress, um dieses Szenario zu ermöglichen? Es ermöglicht uns, Optionen mit dem System zu registrieren und sie nach zugewiesener ID abzurufen - dafür ist das Options-API verantwortlich. WordPress bietet auch eine Einstellungs-API zum Erstellen einer Admin-GUI für Optionsdialoge. Abgesehen davon erlaubt es uns, benutzerdefinierte Elemente in das Admin-Menü hinzuzufügen, so dass das Plugin eine eigene Einstellungsseite haben kann. Schließlich kümmert sich WordPress um die Sicherheit von Plugins und bietet eine Reihe von Funktionen und Reinigungsmethoden, um Benutzereingaben sicher zu handhaben.
Werfen wir einen genaueren Blick auf jeden Teil.
Das Options-API ist eine standardisierte Möglichkeit, benutzerdefinierte Daten in der Datenbank zu speichern. Alle Daten werden unter einem gegebenen benutzerdefinierten Namen in der Tabelle wp_options gespeichert und können von irgendwo im Code abgerufen werden. Die wichtigsten Funktionen der API sind:
Die Funktion get_option extrahiert einfach alle unter einem gegebenen Namen gespeicherten Informationen aus der Datenbank und gibt sie zurück. Die Funktion update_option übernimmt einen Optionsnamen und dessen Wert und aktualisiert den entsprechenden Eintrag in der Datenbank. Wenn es keinen solchen Eintrag gibt, wird es automatisch erstellt. Beide Funktionen können sowohl mit Arrays als auch mit einzelnen Werten arbeiten. Das bedeutet, dass Sie Array-Daten unter einem einzigen Namen in der Datenbank speichern können und die API Serialisierungs- und Mineralisierungsaktionen für Sie übernimmt. Dies ist eine empfohlene Vorgehensweise für Plugins: Speichern Sie alle Plugin-Optionen als Array unter einem einzigen Namen.
Sie können im Admin-Menü eine Einstellungsseite oder eine Seitengruppe für Ihr Plugin erstellen. Wenn Sie eine Gruppe von Seiten erstellen, sollten Sie zuerst eine Seite auf oberster Ebene hinzufügen:
Die Parameterwerte sind selbsterklärend, aber Sie können sich auf die beziehen Quelle für Details. Jetzt müssen Sie die internen Seiten nacheinander auf folgende Weise hinzufügen:
Als $ parent_slug-Parameter müssen Sie die ID der Top-Level-Seite verwenden - im Falle einer benutzerdefinierten Top-Level-Seite ist dies der Wert, den Sie bei der Registrierung als $ menu_slug angegeben haben. Wenn Sie nicht mehrere Seiten benötigen, können Sie eine einzelne Einstellungsseite unter einem der vorhandenen Abschnitte der obersten Ebene erstellen - üblicherweise unter "Einstellungen" (options-general.php sollte als $ parent_slug verwendet werden). Alternativ gibt es Shortcut-Funktionen zum Hinzufügen von Unterseiten unter bestimmten Admin-Menüpunkten, im Falle von "Einstellungen" ist es add_options_page () .
Das Einstellungs-API können Sie eine Schnittstelle erstellen, um die Einstellungen des Plugins zu verwalten; Markieren Sie eine Seite als Einstellungsseite (um Eingaben automatisch zu verarbeiten) und geben Sie Abschnitte auf dieser Seite und Felder innerhalb jedes Abschnitts aus, um Benutzereingaben zu akzeptieren. Um dies zu erreichen, ist es das erste Ziel, Einstellungen für das System zu registrieren und für diese eine Sektion-Felder-Struktur zu erstellen:
Siehe die Kodex für eine detaillierte Beschreibung der Parameter, aber die Logik ist ziemlich einfach: Zuerst registrieren wir unseren Optionsnamen (wenn es viele Optionen gibt, können sie in Gruppen organisiert werden); dann registrieren wir Abschnitte mit einer internen ID und einem Satz von Feldern für jeden Abschnitt; Die API gibt uns die Möglichkeit, benutzerdefinierte Rückrufe für die Eingabevalidierung und für die Anzeige jedes Felds und Abschnitts festzulegen.
Nachdem wir unsere Optionen und die entsprechenden Felder registriert haben, müssen wir sie auf der Einstellungsseite anzeigen - die folgenden Funktionen müssen innerhalb der aufgerufen werden
In diesem Snippet erstellt msp_helloworld_admin_menu_setup eine Unterseite im Menü 'Einstellungen' (sie sollte im Aktionshook 'admin_menu' ausgeführt werden, damit sie korrekt funktioniert). Dann geben wir das Einstellungsformular mit msp_helloworld_admin_page_screen aus. Es verwendet die Settings-API-Funktionen für Felder und vorgefertigte WordPress-Funktionen für andere Elemente der Oberfläche (wie die Schaltfläche "Senden"). Notieren Sie das Aktionsattribut des