✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Organisieren von WordPress-Einstellungsbildschirmen

6

Da viele von uns mit PHP7+ weitermachen, können wir weiterhin viele neue Funktionen nutzen, die die Sprache bietet.

Organisieren von WordPress-Einstellungsbildschirmen

In der Zwischenzeit gibt es jedoch immer noch Funktionen von PHP und verwandter Software, die wir verwenden können, um unsere Entwicklung zu optimieren. Das wenigste davon (und das, worüber ich ein wenig geschrieben und gesprochen habe) sind Namespaces.

Organisieren von WordPress-Einstellungsbildschirmen

Hier ist jedoch die Sache: Ich mag es, die Dateien und Verzeichnisse meines Plugins so strukturiert zu haben, dass sie so organisiert sind, dass sie die Namensraumkonventionen widerspiegeln, denen sie folgen. Und dies kann für Taxonomien, Metaboxen, Domänenobjekte, datenbankbezogene Funktionen usw. erfolgen.

In diesem Beitrag möchte ich jedoch über eine Möglichkeit sprechen, WordPress-Einstellungsbildschirme sowohl von der logischen – d. h. ihrem Speicherort im Dateisystem – als auch von der virtuellen – d. h. ihren Namespaces – Organisationsstruktur aus zu organisieren.

Organisieren von WordPress-Einstellungsbildschirmen

Der erste Punkt, den ich machen möchte, ist folgender: Obwohl ich über die Organisation der WordPress-Einstellungsbildschirme spreche, spreche ich nichts über die API. Nehmen Sie stattdessen an, dass ich für diesen Beitrag über Folgendes spreche:

  • ein benutzerdefiniertes Menü mit einer zugehörigen Menüseite,
  • eine Menüseite, die die Anforderungen für eine Einstellungsseite darstellt (z. B. das Nonce-Feld usw.)
  • ein Teilton, der die eigentlichen Einstellungen enthält (oder mehrere Teiltöne, wenn Sie mehrere Einstellungen einbeziehen möchten).

Ich werde nicht über den Prozess der Bereinigung, Serialisierung, des Abrufs, der Validierung und der Anzeige sprechen. Das ist rein organisatorisch.

Den Prozess durchdenken

Da wir unsere Dateien in Verzeichnissen organisieren werden, die auch 1:1 Namespaces abbilden, überlegen wir uns genau, was wir brauchen. Meine Herangehensweise ist folgende:

  1. Wir erstellen etwas speziell für die kontextbezogene WordPress-Anwendung. Dies zeigt einen Namensraum an.
  2. Wir werden ein Verwaltungsmenü erstellen, was bedeutet, dass wir beide im Verwaltungsbereich von WordPress arbeiten, also einen anderen Namensraum, und mit Menüs, die ein anderer Namensraum sind.
  3. Als nächstes brauchen wir Dateien, um den Standardbildschirm für WordPress anzuzeigen, also brauchen wir einen Views-Namespace,
  4. Und dann benötigen wir domänenspezifischen Code, der in die Ansicht eingefügt wird, sodass wir letztendlich ein Partials-Verzeichnis (und damit einen Namespace) benötigen.

Die endgültige, logische Organisation der Daten würde also etwa so aussehen:

Organisieren von WordPress-Einstellungsbildschirmen

Das Wichtigste, was man bei dieser speziellen Organisation von Dateien vielleicht beachten sollte, ist, dass die AdminMenu -Klasse eine Basisklasse ist, von der alle spezifischen (oder konkreteren) Klassen erben können.

Das bedeutet, dass die AcmeAdminMenu -Klasse bestimmte Eigenschaften und Funktionen von ihr erbt und dann ihre Logik implementiert oder ihre Logik ebenfalls hinzufügt.

Namensraum für jede Datei

Wenn Sie Ihre Dateien auf diese Weise organisieren, werden die Namespaces fast selbstverständlich, nicht wahr? Hier ist der Namespace für jede der Dateien:

  • WordPressAdminMenuAdminMenu
  • WordPressAdminMenuAcmeAdminMenu
  • WordPressAdminMenuViewsEinstellungen
  • WordPressAdminMenuViewsSettingsPartials

Beachten Sie, dass acme-settings.php, da es sich technisch gesehen nur um ein Markup für Rendering-Optionen handelt, nicht unbedingt einen Namensraum haben muss, da es in der Ansicht enthalten ist, die es rendert.

Unabhängig davon, wenn Sie ein Fan davon sind, die Dinge so organisiert wie möglich zu halten, ist es nur sinnvoll, einen Partial innerhalb eines Verzeichnisses mit genau diesem Namen zu verschachteln.

Was ist mit Code?

Wenn Sie daran interessiert sind, den Code für so etwas zu sehen, denke ich darüber nach, ein kleines Plugin zusammenzustellen, das zeigt, wie all dies zusammenpasst. Immerhin ist das ein bisschen High-Level, nicht wahr? Ich meine, es gibt keine Implementierung.

Andererseits, wenn dies hilft, Sie in die richtige Richtung für ein aktuelles oder zukünftiges Projekt zu lenken, dann kann es ausreichen.

Warum teilen Sie mir Ihre Gedanken also nicht über Twitter mit, und ich werde von dort aus weitermachen. Wenn Sie ein Fan von Code sind, cool; ansonsten keine sorge. Dieser Beitrag genügt.

Aufnahmequelle: tommcfarlin.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen