WordPress Entwickler für Programmierung Ihrer Webprojekte
WordPress Entwickler für Programmierung Ihrer Webprojekte
  • Start
  • Unser Angebot
  • Blog
  • Kontakt
Avatar (Thumbnail) zum Blogeintrag

Eine eigene Einstellungsseite für Plugins

Voll Enthusiasmus erstellt von: zauni | 21. Dezember 2022

add_options_page() add_settings_error() do_settings_sections() Einstellungen plugins register_setting() sanitize_text_field() settings_fields() submit_button

Speicherung von eigenen Einstellungen.

Wer eigene Plugins für WordPress schreibt und diese an verschiedene Kunden verteilt, der hat sich vermutlich schon einmal Gedanken gemacht, wie und vor allem wo man bestimmte Daten speichert.

Nicht jedes Plugin ist so ohne Weiteres für mehrere verschiedene Kunden geeignet, ohne dass man es anpassen müsste. Daher erstellen wir in weiterer Folge eine eigene Einstellungsseite für ein selbst entwickeltes Plugin im WP-Backend.

    Inhalt auf dieser Seite:

  1. Speicherung von eigenen Einstellungen.
  2. Die Einstellungsseite
  3. Einstellungsseite mit Inhalt füllen
  4. Einstellungen überprüfen
  5. Links

Die Einstellungsseite

Zu aller erst erstellen wir einen Menüeintrag für unsere zukünftige Einstellungsseite.

Dafür verwenden wir den Hook „admin_menu“ und die Funktion `add_options_page()`.

`add_action( ‚admin_menu‘, ‚My_Plugin::my_admin_menu_entries‘ );`

`add_options_page( ‚Plugin Einstellungen, ‚Plugin Einstellungen‘, ‚manage_options‘, ‚my-plugin-settings‘, ‚My_Plugin::inhalt_der_einstellungsseite‘ );`

Dadurch erhalten wir folgendes:

Plugin Einstellungsseite im Backend
Plugin Einstellungsseite im Backend
Telefon+436603100000
E-Mailsouri@wp-entwickler.at
AdresseWP-Entwickler
Safenauer-Straße 62,
8230 Hartberg

Einstellungsseite mit Inhalt füllen

Als nächstes erstellen wir das Aussehen dieser Seite und erstellen die ersten Einstellungen.

Hierzu definieren wir zuerst ein Formular.

"<yoastmark

Mit den folgenden 3 Funktionen können wir einfach und unkompliziert unsere Inputs in unser Formular einbauen. Die Funktion `settings_fields()` erstellt dabei alles notwendige für eine Nonce-Überprüfung, `do_settings_sections()` erstellt unsere Inputs und `submit_button()` erstellt einen Speicher-Button.

Die Einstellungen werden erstellt
Hier wird der Grundstein zur Erstellung der Einstellungen für unser Plugin gelegt.

Als nächstes müssen wir klarstellen, wo und wie die Felder aussehen und wie sie gespeichert werden. Die erste Funktion (register_setting()) ist dafür zuständig, dass die Daten gespeichert werden können. Zusätzlich können wir eine Funktion mitgeben, die die Optionen einer Überprüfung unterziehen. Dadurch wird jede Einstellung durch unsere Funktion einstellungs_ueberpruefung() geführt, um potentiell gefährliche Werte raus zu filtern.

Die zweite Funktion (add_settings_section()) definiert weitere Bereiche der Einstellungsseite wie den Titel oder eine zusätzliche Beschreibung der Einstellungsseite.

Für die dritte Funktion (add_settings_field()) erstellen wir uns zuvor ein Array mit den Daten, für die wir eine Einstellung definieren wollen. Innerhalb dieser Funktion rufen wir eine weitere Funktion auf, die uns für jede Einstellung die notwendigen Inputs erstellt und diese, beim Aufruf der Seite vorausfüllt.

Einstellungen für unser Plugin
Einstellungen für unser Plugin

Einstellungen überprüfen

Zum Schluss sehen wir uns noch an, wie wir unsere Einstellungsseite vor böswillig eingetragenen Werten schützen können.

Dies dürfte besonders interessant sein, da wir immer wieder die Beobachtung machen, dass wenige Plugins eine Validierung der Einstellungen vorzunehmen scheinen.
Was etwas komisch anmutete, da uns auch hierfür WordPress eine Funktion zur Verfügung stellt, die uns einiges abnimmt. Einzig das definieren der „guten“ Daten ist uns überlassen.

In diesem Beispiel verwende ich eine weitere WordPress-Funktion Namens „sanitize_text_field()“. Dabei wird die Eingabe des Benutzers durch sehr weit gefasste Regeln gefiltert. Die Funktion lässt so gut wie alle möglichen Zeichen zu. Sie prüft in erster Linie auf Zeichen des UTF-8 Zeichensatzes und wandelt Spitzklammern in ihre entsprechenden HTML-Entitäten um. Dadurch ist es bereits nicht mehr möglich, durch unsere Optionen JS Befehle in die Website zu schummeln.
Wer es etwas restriktiver halten möchte, kann statt dieser Funktion auch ein „preg_match()“ verwenden und mit regulären Ausdrücken nur bestimmte Zeichen zulassen.

Die Einstellungen werden überprüft
Die Überprüfung der Einstellungen

Die Funktion „add_settings_error()“ schließlich erstellt uns eine Fehlermeldung, die auch gleich einen Hinweis ausgibt, in welchem Einstellungsfeld sich eine fehlerhafte Eingabe befindet.

Fehlerhafte Eingabe in der Einstellungsseite
Fehlerhafte Eingabe in der Einstellungsseite

Conclusio

Mit dieser kleinen Anleitung lässt sich nun eine Einstellungsseite erstellen, die sich hervorragend in WordPress einfügt und auch gleich die Optionen mit einer netten Warnung versieht, sollten die eingegebenen Werte nicht passen.

Somit kann ich ganz einfach dynamische Werte im Look and Feel von WordPress speichern und in meinem Plugin verwenden.

Links

  • https://developer.wordpress.org/reference/hooks/admin_menu/
  • https://developer.wordpress.org/reference/functions/add_options_page/
  • https://developer.wordpress.org/reference/functions/settings_fields/
  • https://developer.wordpress.org/reference/functions/do_settings_sections/
  • https://developer.wordpress.org/reference/functions/submit_button/
  • https://developer.wordpress.org/reference/functions/sanitize_text_field/
  • https://developer.wordpress.org/reference/functions/add_settings_error/

Navigation

Start Unser Angebot Blog

Impressum & Kontakt

wp-entwickler.at wird betrieben von

  • wp-entwickler Rene Souri
  • UID: ATU60950509
  • Safenauer-Straße 62
  • 8230 Hartberg

Wir lieben WordPress und freuen uns, mit Ihnen ein Projekt entwickeln zu können!

  • Impressum
  • AGB

wp-entwickler.at ist eine indit.at Division