Ich möchte einige Meinungen zu den Best Practices für die Entwicklung von WordPress-Plugins erhalten, die eine Theme-Integration ermöglichen.
Lassen Sie mich mit einem hypothetischen Beispiel eines Szenarios beginnen, auf das ich neugierig bin, damit ich bei der Beantwortung dieser Frage einen Sinn habe. Stellen Sie sich vor, ich erstelle ein Plugin namens "Discography". Discography registriert drei benutzerdefinierte Post-Typen: "Bands", "Albums" und "Tracks". Das Plugin bietet auch Meta-Felder mit Details zu den einzelnen Beitragstypen sowie benutzerdefinierte Taxonomien zum Organisieren der einzelnen Beitragstypen. Diese Beitragstypen sind mit dem Plugin " Beiträge 2 Beiträge" verknüpft. Innerhalb des Administrators kann der Benutzer neue Bands hinzufügen, die Alben zugeordnet werden können, die wiederum Tracks zugeordnet sind, denen über Meta-Boxen und Taxonomien viele andere Daten hinzugefügt werden.
Ich möchte, dass es einige Standardanzeigen für die Daten bereitstellt. Ein fortgeschrittener Benutzer / Entwickler hätte nur diesen Administrator. Es würde ihr leicht fallen, diese Daten zu erfassen und im Thema zu verwenden. Ohne einige Standardansichten wäre dieses Plugin jedoch für die meisten Benutzer nutzlos. In diesem Beispiel können Sie Folgendes anzeigen (Klammern geben an, wie die Informationen in der Reihenfolge der Vorlagenhierarchie angezeigt werden können):
- Bands (single-prefix-band.php, single.php, index.php, shortcode)
- Alben (single-prefix-album.php, single.php, index.php, shortcode)
- Tracks (Single-Prefix-Track.php, Single.php, Index.php, Shortcode)
- Bandliste (template-band-list.php, page-band-listing.php, page- {id} .php, page.php, index.php, shortcode)
- Albumliste (template-album-list.php, page-album-listing.php, page- {id} .php, page.php, index.php, shortcode)
- Album Timeline (Vorlage-Album-Timeline.php, Seite-Album-Timeline.php, Seite- {ID} .php, Seite.php, Index.php, Shortcode)
Es ist wichtig, dass es für diese Beitragstypen eine Standarddarstellung gibt, da in den Standardvorlagendateien nicht alle Informationen angezeigt werden, die für die einzelnen Beitragstypen erforderlich sind. Zum Beispiel zeigt das Twenty Eleven-Design standardmäßig nur den Namen, die Kategorien, die Beschreibung und das Veröffentlichungsdatum eines Albums an. Nicht sehr nützlich für ein Album. Ich möchte eine einzelne Post-Vorlage bereitstellen, die die Band, das Veröffentlichungsdatum, das Plattenlabel, die Albumversionen, die Tracks usw. berücksichtigt. Als Plug-in-Entwickler würde ich das für wichtig halten. Ich weiß, dass die Vorlage nicht für jedes Thema funktionieren würde, aber es sollte einige Standardeinstellungen geben, die weiter in das Thema des Benutzers integriert werden können.
Auch hier bin ich gespannt, wie ich mit dieser Situation am besten umgehen kann. Ich denke, Sie können Folgendes tun.
Shortcodes
Shortcodes können sehr flexibel und benutzerfreundlich eingesetzt werden, um es Nicht-Entwicklern zu ermöglichen, überall auf der Site Bands, Alben, Tracks, Bandlisten usw. hinzuzufügen. Es wäre hilfreich, Bands auf bestimmten Seiten zu präsentieren oder separate Seiten für jede Band zu erstellen (nicht sehr effizient, aber einige Benutzer gehen die Dinge auf diese Weise an). Der Shortcode würde HTML generieren, das an eine bereitgestellte CSS-Datei gebunden wäre, die eine schöne Standardansicht der gewünschten Daten liefern würde. Alles wäre in den Plugin-Dateien enthalten und es müsste nichts mit dem Theme gemacht werden.
Vorlagendateien
Das Plugin kann auch mit Vorlagendateien geliefert werden. Die Vorlagendateien können für eine schöne Standardansicht markiert und gestaltet werden. Sie können Ihrem Benutzer Anweisungen zum Verschieben der Dateien in den Themenordner geben, damit das Thema die richtigen Vorlagen findet, wenn die Beitragstypen angezeigt werden. Sie könnten sogar eine Schnittstelle bereitstellen, über die der Benutzer die Dateien mit einem einzigen Klick verschieben kann (Hinweis: Ich würde bei der Aktivierung keine Dateien im Themenordner des Benutzers erstellen, da das Hinzufügen von Dateien zu ihrem Thema ohne dessen Initiierung böse ist). .
Sie können diese Dateien auch mithilfe von Filtern verwenden, ohne sie aus dem Plug-in-Ordner zu verschieben, sodass alles in sich geschlossen bleibt. Ich habe die Filter "template_include" und "{$ type} _template" gesehen, die für diesen Zweck verwendet wurden. Tatsächlich können Sie Vorlagen aus dem Themenordner verwenden. Wenn diese nicht vorhanden sind, können Sie auf diese Filter zurückgreifen, um die Standardansichten bereitzustellen.
Die Frage
Ich würde gerne wissen, was andere für die besten Praktiken in diesen Situationen halten, wenn die vorgestellten Ideen in irgendeiner Weise problematisch sind und Alternativen, die ich nicht angegeben habe.
Vielen Dank!