An diesem Punkt der Serie sind wir endlich Sie können mit der Erstellung unseres Plugins mit den objektorientierten Techniken beginnen, die wir bisher in der Serie gelernt haben.
Wenn Sie gerade erst zu uns kommen, empfehle ich Ihnen dringend, die Serie bis jetzt einzuholen. Andernfalls besteht die Gefahr, dass Sie einige der wichtigsten Punkte verpassen, die wir demonstrieren werden, wenn wir das Plugin über die nächsten Artikel ausbauen.
Na gut, also ist es endlich an der Zeit, Code zu schreiben. Bevor wir beginnen, ist es wichtig zu verstehen, dass das Erstellen eines Plugins - oder jeglicher Art von Software - eine Reihe von Schritten erfordert, und obwohl wir in diesem Artikel ein wenig Code schreiben werden, ist dies nicht der Fall Hinzufügen einer großen Funktionalität, bis wir das Gerüst oder die Grundlage des Plugins haben.
Dazu müssen wir einige Punkte überprüfen:
Lassen Sie uns diese Punkte also schnell behandeln, und dann gehen wir auf die Details des Plugins ein.
In den nächsten Artikeln werden wir ein Plugin erstellen, das ein Post-Meta-Feld in die Ansicht für einen einzelnen Post-Editor einfügt, in dem alle Metadaten angezeigt werden, die dem aktuellen Post zugeordnet sind.
Das Plugin kann nur gelesen werden Aussicht die mit dem Plugin verknüpften Metadaten. Wir können keine neuen Metadaten einführen - zumindest nicht für die erste Version.
Die anderen Features sind, dass es in einem sauberen, organisierten Format angezeigt wird, so dass wir den Schlüssel und die Werte für die Beitrags-ID leicht identifizieren können. Wir werden auch einen Anker einführen, der es uns erlaubt, eine Codezeile zu kopieren, mit der wir die Informationen in Form von anrufen können get_post_meta ($ post_id, $ meta_key, $ meta_value);
.
Bevor wir fortfahren, gibt es viele nette Funktionen, die wir in dieses Plugin implementieren könnten.
Wir könnten die Fähigkeit einführen:
Aber im Einklang mit der Philosophie, ein "starkes 1.0" zu schaffen, werden wir eine schlanke, fokussierte Grundlage aufbauen, auf der wir das Plugin weiter ausbauen können, wenn es nach dieser Serie passt.
Vielleicht werden wir uns vor dem Ende der Serie mit einigen der oben genannten Features beschäftigen. Vielleicht möchten Sie Ihre eigenen Features einführen. So oder so ist in Ordnung. Unter dem Strich werden wir einen starken Kern aufbauen, von dem aus wir fortfahren können, um die Funktionalität zu erweitern.
Lassen Sie uns mit all dem sagen, was zuerst gesagt wurde, durch die Höhepunkte des Plugins, dann schauen wir uns an, wie wir die Dateien und die Komponenten des Plugins organisieren.
Klingt verwirrend? Wenn Sie sich die Dateistruktur und den grundlegenden Beispielcode ansehen und einen Blick darauf werfen, wird dies immer sinnvoller sein.
Nachdem dies gesagt wurde, werfen wir einen Blick auf die Komponenten, die miteinander interagieren werden. Dann schauen wir uns an, wie die Dateien organisiert werden. Danach werden wir den Code für das Plugin ausfüllen, das wir im nächsten Artikel ausfüllen werden.
Insbesondere besteht das Plugin aus den folgenden Komponenten - oder Dateien -, aus denen die Quelle des Plugins besteht. Nach einem Blick auf die Dateiliste schauen wir uns ein Diagramm an, wie alle Teile zusammenwirken.
single-post-meta-manager.php
ist die primäre Datei, die das Plugin mit WordPress registriert und alles in Bewegung setzt.class-single-post-meta-manager-admin.php
ist die Datei, die für das Registrieren und Einreihen von Stylesheets sowie für die Anzeige der Benutzeroberflächenelemente verantwortlich ist, die die Post-Metadaten enthalten.single-post-meta-manager-admin.css
ist das Stylesheet, das die Benutzeroberfläche gestaltet.class-single-post-meta-manager-loader.php
ist die Datei, die Aktionen und Filter zwischen dem Core-Plugin und der Verwaltungsklasse koordiniert.class-single-post-meta-manager.php
ist die Core-Plug-In-Datei, in der die Plug-In-Versionsinformationen, Plug-In-Slug-Informationen, Verweise auf den Loader und die Datei gespeichert werden, in der wir den Loader anweisen, welche Objekte und Funktionen für die Anzeige der administrativen Benutzeroberfläche verantwortlich sind.README.md
enthält die üblichen Anweisungen, um mit dem Plugin zu beginnen.ÄNDERUNGEN.md
enthält eine Liste der Änderungen, die in jeder Version des von uns freigegebenen Plugins auftreten.Je nachdem, wie viel Erfahrung Sie mit der objektorientierten Programmierung gemacht haben, kann dies für eine relativ einfache Reihe von Funktionen wie viele Dateien erscheinen. Es gibt jedoch noch mehr: Wir legen nicht alle diese Dateien im Stammverzeichnis des Plugin-Verzeichnisses ab.
Stattdessen gehen wir noch einen Schritt weiter und ordnen die Dinge auch in richtigen Verzeichnissen an. Wenn wir uns das einmal angeschaut haben, werden wir uns die Organisation der Komponenten in Form eines Diagramms ansehen und dann den Code überprüfen, der das Gerüst für das Plugin bereitstellt.
Die Dateiorganisation ist relativ einfach und wird am besten durch die Verwendung eines Images demonstriert:
Um es klar zu sagen, hier ist die Aufschlüsselung dessen, was Sie in der Abbildung oben sehen:
admin / class-single-post-meta-manager-admin.php
admin / css / single-post-meta-manager.admin.css
Includes / class-single-post-meta-manager-loader.php
Includes / class-single-post-meta-manager.php
Sprachen/
single-post-meta-manager.php
ÄNDERUNGEN.md
README.md
LIZENZ.txt
Dies ist wichtig zu erkennen, und es gibt einige Stellen im Code, an denen wir Abhängigkeiten registrieren, und es ist wichtig zu wissen woher Die Abhängigkeiten sind so, dass wir ihnen die richtigen Pfade zur Verfügung stellen können.
An diesem Punkt können wir mit dem Ausblenden der Klassen beginnen, die wir verwenden werden. Zu dem Code, den Sie gerade sehen, sind einige wichtige Punkte zu beachten:
Wenn Sie Fragen zum Code haben, können Sie diesbezüglich Kommentare hinterlassen. Ich kann jedoch sagen, warten Sie bis zum nächsten Artikel, um die Antwort zu sehen.
Nun zum Code.
Die Core-Plugin-Datei ist für die Registrierung des Plugins bei WordPress verantwortlich und letztendlich für den Import der Core-Plugin-Klasse (die wir in Kürze prüfen werden) sowie für die Aktivierung des Plugins.
Beachten Sie die Bedingung, die wir am Ende der Datei haben. Dadurch wird sichergestellt, dass auf die Plugin-Datei nicht direkt im Webbrowser zugegriffen werden kann.
Verwaltungsdateien
Alle diese Dateien befinden sich im
Administrator
Verzeichnis wie oben aufgeführt.Die Admin-Klasse für Single Post Meta Manager
Diese Klasse reiht das Stylesheet ein und rendert die Meta-Box, die zum Anzeigen des angegebenen Post-Metas verwendet wird.
version = $ version; public function enqueue_styles () öffentliche Funktion add_meta_box ()Beachten Sie in dieser Klasse, dass es ein einzelnes geschütztes Attribut für die hat
$ version
des Plugins. Dieses Attribut wird im Konstruktor der Klasse eingerichtet.Wir werden später im Code sehen, wie das zusammenpasst.
Das Stylesheet für den Single Post Meta Manager
Im Moment gibt es keinen Code, der für diese bestimmte Datei angezeigt werden soll. aber fahren Sie fort und fügen Sie es dem hinzu
admin / css
Unterverzeichnis als das, was wir letztendlich verwenden werden, um das Dashboard zu gestalten.Enthält
Hierbei handelt es sich um Core-Plugin-Dateien, die für die Koordinierung von Informationen zwischen den verschiedenen Hooks und dem Verwaltungsbereich des Plugins verantwortlich sind.
Single Post Meta Manager Loader
Diese Klasse wird von der primären Plugin-Klasse verwendet, um alle im Plugin vorhandenen Hooks und die oben definierte Verwaltungsklasse zu koordinieren.
Beachten Sie, dass wir in der Klasse oben die Attribute als gekennzeichnet haben
geschützt
. Dies geschieht, damit diese Klasse Zugriff auf ihre Attribute hat, aber keine anderen Klassen.Darüber hinaus haben wir dies getan, nur für den Fall, dass wir diese bestimmte Klasse in einer zukünftigen Iteration des Plugins unterteilen.
Single Post Meta Manager
Schließlich ist die primäre Plugin-Klasse dafür verantwortlich, die Abhängigkeiten zu laden, das Gebietsschema festzulegen und die Hooks zu koordinieren.
plugin_slug = 'single-post-meta-manager-slug'; $ this-> version = '0.1.0'; private Funktion load_dependencies () private Funktion define_admin_hooks () öffentliche Funktion run () öffentliche Funktion get_version () return $ this-> version;Beachten Sie im obigen Code, wir haben zusätzliche
geschützt
Attribute, ein paarPrivatgelände
Funktionen und aÖffentlichkeit
Funktion, die als Getter verwendet wird, die wir verwenden werden, wenn wir das Plugin weiter ausbauen.Im nächsten Artikel verbringen wir viel Zeit in dieser Klasse, da dies der Einstiegspunkt ist, an dem viele Funktionen stattfinden.
Im Anschluss
Wir haben in diesem Artikel viel Material behandelt, aber es gibt natürlich noch viel mehr zu tun. Neben der Bereitstellung von Dokumentation für unsere Funktionen müssen wir auch eine Funktionalität implementieren, die dieses Gerüst zum Leben erweckt.
Im nächsten Artikel der Serie werden wir genau das tun. Danach werden wir uns mit der Dokumentation des Codes beschäftigen.
Wie bereits erwähnt, können Sie Fragen und / oder Kommentare zum oben genannten Code gerne hinterlassen. Bei Interesse können Sie den aktuellen Status des Projekts auf GitHub jederzeit anzeigen.
Bis zum nächsten Artikel!