Persönlich denke ich, dass dies ein Community-Wiki sein sollte, da es möglicherweise keine einzige richtige Antwort gibt ... aber ich werde auf andere Meinungen warten.
EAMann
@EAMann Ich hatte die gleiche anfängliche Reaktion, aber es sieht so aus, als ob es jetzt so ist! Coolio!
John P Bloch
Ich glaube, ich habe die Frage möglicherweise falsch formuliert. Ich habe gefragt, ob dies eine unterstützte Funktion von WordPress ist oder nicht.
Mfields
Antworten:
6
Es hängt wirklich vom Entwickler ab und davon, wie er für die Verwendung von WordPress geschult wurde. Im Allgemeinen habe ich zwei Denkschulen gesehen:
Bio
Einige Entwickler finden eine Funktion in einem Plugin, die sie für wirklich cool halten. Leider sind sie sich nicht ganz sicher, wie sie es selbst implementieren sollen, wollen aber die Funktionalität wirklich in ihr Thema aufnehmen. Anstatt das Rad neu zu erfinden, werden sie ein Drop-In-Plugin in ihr Thema aufnehmen und mitmachen.
In den meisten Fällen (nicht alle, aber die meisten, die ich gesehen habe) ist dies eine direkte Folge der Unerfahrenheit im Hintergrund eines Entwicklers. Entweder kennen sie nicht genug PHP, um selbst ein neues System zu erstellen, oder sie sind zu faul, um es zu versuchen.
Produkt des Designs
Andere Entwickler werden versuchen, Kunden zu bedienen, die es nicht besser wissen. Ihr Thema basiert beispielsweise auf einem großen, Flash-basierten rotierenden Banner-Plugin. Das Plugin ist ziemlich bekannt, aber sie haben keine Ahnung, ob / wann der ursprüngliche Autor das System mit Code aktualisiert, den ihr Thema nicht versteht. Ändern des DB-Schemas, Ändern von Parametern, neue Hooks ... all dies kann ein Thema beschädigen, das nicht entsprechend aktualisiert wird.
Anstatt zu riskieren, dass der Client auf "Update" klickt, ohne zu wissen, was er tun wird (oder sich an eine unendliche Anzahl von Updates für einen Client zu binden, sobald das Thema fertig ist), machen sie einen Schnappschuss der aktuellen Arbeitsversion und arbeiten hart -code es in das Thema. Auf diese Weise wissen sie sicher, dass es immer mit ihrem Thema funktioniert.
Ein bisschen wie das Hardcodieren einer externen Referenz in Svn und das Deaktivieren der Versionskontrolle, damit Sie sie nicht aktualisieren können :-)
Warum ist das egal?
Ob die Praxis organisch oder absichtlich entstanden ist, es ist immer noch eine sehr schlechte Idee !!!
Ob das Thema aktualisiert wird oder nicht, ob das Plugin aktualisiert wird oder nicht ... WordPress wird schließlich aktualisiert. Die Beschränkung Ihres Kunden auf eine einzige Version ist ehrlich gesagt beleidigend und ein schlechtes Geschäft. Anstatt ein Drop-In-Plugin fest zu codieren, lassen Sie Ihr Thema einfach mit den bereitgestellten Hooks gut spielen und ermutigen Sie die Benutzer, das andere System zu installieren. Wenn Sie WordPress-Hooks (Aktionen und Filter) anstelle von direkten Funktionsaufrufen verwenden, riskieren Sie nicht viel Stabilität. Wenn sich ein Hook ändert, wird die Funktion einfach deaktiviert, als ob das Plugin nicht installiert wäre.
+1 stimme voll und ganz dem Abschnitt zu, warum es keine Rolle spielt
Scott
Stimmen Sie mit allem überein, was Sie hier gesagt haben. Auf jeden Fall eine schlechte Praxis für mich. Ich habe mich gefragt, ob WordPress so konzipiert ist. Oder nutzen Themenautoren die Architektur, indem sie das Plugin an der falschen Stelle platzieren?
Mfields
2
Themenautoren nutzen die Architektur. Plugins sollen aus einem bestimmten Grund enthalten sein wp-content/pluginsund Themen enthalten wp-content/themes.
EAMann
Das habe ich mir gedacht, aber nie wirklich gewusst :) Das macht für mich absolut Sinn, da nur einige wirklich einfache Plugins auf diese Weise funktionieren. Viele andere würden Modifikationen erfordern.
Mfields
Ich stimme dieser Antwort nicht unbedingt zu, zum Beispiel bei Plugins, die für ein bestimmtes Thema spezifisch sind (wobei beide tatsächlich von derselben Person geschrieben wurden, Plugins jedoch aus Gründen der Modularität als Plugins aufbewahrt werden - siehe auch meine Frage: WordPress .stackexchange.com / question / 46364 /… )
Antworten:
Es hängt wirklich vom Entwickler ab und davon, wie er für die Verwendung von WordPress geschult wurde. Im Allgemeinen habe ich zwei Denkschulen gesehen:
Bio
Einige Entwickler finden eine Funktion in einem Plugin, die sie für wirklich cool halten. Leider sind sie sich nicht ganz sicher, wie sie es selbst implementieren sollen, wollen aber die Funktionalität wirklich in ihr Thema aufnehmen. Anstatt das Rad neu zu erfinden, werden sie ein Drop-In-Plugin in ihr Thema aufnehmen und mitmachen.
In den meisten Fällen (nicht alle, aber die meisten, die ich gesehen habe) ist dies eine direkte Folge der Unerfahrenheit im Hintergrund eines Entwicklers. Entweder kennen sie nicht genug PHP, um selbst ein neues System zu erstellen, oder sie sind zu faul, um es zu versuchen.
Produkt des Designs
Andere Entwickler werden versuchen, Kunden zu bedienen, die es nicht besser wissen. Ihr Thema basiert beispielsweise auf einem großen, Flash-basierten rotierenden Banner-Plugin. Das Plugin ist ziemlich bekannt, aber sie haben keine Ahnung, ob / wann der ursprüngliche Autor das System mit Code aktualisiert, den ihr Thema nicht versteht. Ändern des DB-Schemas, Ändern von Parametern, neue Hooks ... all dies kann ein Thema beschädigen, das nicht entsprechend aktualisiert wird.
Anstatt zu riskieren, dass der Client auf "Update" klickt, ohne zu wissen, was er tun wird (oder sich an eine unendliche Anzahl von Updates für einen Client zu binden, sobald das Thema fertig ist), machen sie einen Schnappschuss der aktuellen Arbeitsversion und arbeiten hart -code es in das Thema. Auf diese Weise wissen sie sicher, dass es immer mit ihrem Thema funktioniert.
Ein bisschen wie das Hardcodieren einer externen Referenz in Svn und das Deaktivieren der Versionskontrolle, damit Sie sie nicht aktualisieren können :-)
Warum ist das egal?
Ob die Praxis organisch oder absichtlich entstanden ist, es ist immer noch eine sehr schlechte Idee !!!
Ob das Thema aktualisiert wird oder nicht, ob das Plugin aktualisiert wird oder nicht ... WordPress wird schließlich aktualisiert. Die Beschränkung Ihres Kunden auf eine einzige Version ist ehrlich gesagt beleidigend und ein schlechtes Geschäft. Anstatt ein Drop-In-Plugin fest zu codieren, lassen Sie Ihr Thema einfach mit den bereitgestellten Hooks gut spielen und ermutigen Sie die Benutzer, das andere System zu installieren. Wenn Sie WordPress-Hooks (Aktionen und Filter) anstelle von direkten Funktionsaufrufen verwenden, riskieren Sie nicht viel Stabilität. Wenn sich ein Hook ändert, wird die Funktion einfach deaktiviert, als ob das Plugin nicht installiert wäre.
quelle
wp-content/plugins
und Themen enthaltenwp-content/themes
.