WordPress Custom Post Types Diskussion: Functions.php oder Plugins?

 

Wie viele von Ihnen wissen, hat Syed Balkhi letzte Woche am WordCamp Raleigh 2012 teilgenommen. Während der Veranstaltung löste einer seiner Tweets viele Diskussionen aus. In diesem Artikel wird unser Gründer Syed Balkhi diskutieren, ob benutzerdefinierte WordPress-Beitragstypen zur Datei functions.php oder zu Plugins gehören. Unten ist ein Tweet, der diese Diskussion gestartet hat:

Fügen Sie der Datei functions.php keine benutzerdefinierten Beitragstypen hinzu -> Sie sollten IMMER ein ortsspezifisches Plugin verwenden: wpbeg.in/vcXr7j #wcraleigh

– WordPress-Anfänger (@wpbeginner) 4. November 2012

Nach dem Tweet erschienen viele angesehene Leute aus der WordPress-Community. Sie können das ganze Gespräch hier sehen. Curtis McHale ging noch einen Schritt weiter und ging in seinem neuen Blog-Beitrag auf das Thema ein.

Das Twitter-Gespräch brachte einige großartige Punkte hervor.

Zusammenfassung der Argumente

Ergänzungsargument: Der Benutzer hat immer die Daten, auch wenn sich das Thema ändert. Es mag nicht so schön aussehen, aber es wird dort bleiben.

Functions.php argumento: Daten ohne Design wären irrelevant. Dies wird die Benutzer weiter verwirren.

Mit welcher Seite stimmen Sie am meisten überein? Beide Parteien haben eindeutig ihre Probleme, aber was ist das geringere der beiden Übel?

Aus diesem Grund glauben wir, dass benutzerdefinierte Beitragstypen dies tun sollten FÜR IMMER leben in einem bestimmten Site-Plugin oder einem Plugin vollständig.

Lebe die Daten

Benutzerdefinierte Beitragstypen werden angegeben. In den meisten Fällen überleben Ihre Daten das aktuelle Design. Nachdem wir unsere Themen mehrmals geändert haben, verstehen wir diese Aussage klar. Beiträge, Seiten, Links, Anhänge und Rezensionen sind alle Arten von Beiträgen, die in WordPress enthalten sind. Darüber hinaus haben wir Arten von Veröffentlichungen wie Bücher, Testimonials, Angebote usw. Können Sie sich vorstellen, ob wir das Thema wechseln und verschwinden? Wir wollen sicher nicht, dass das passiert.

Entwickler in unserem Team zu haben, sollte nicht viel ausmachen. Welchen Unterschied macht es wirklich, wenn man bedenkt, dass alle unsere Themen von unserem Team angepasst werden? Das Geheimnis liegt in zwei Worten: Zeit und Zentralisierung. Solange wir alle notwendigen Daten haben, müssen wir in Zukunft nur noch den Stil ändern. Wir müssen uns nicht jedes Mal um das Kopieren und Einfügen von Funktionen von einer Datei in eine andere kümmern. Was ist, wenn Sie die Funktionalität replizieren möchten? Nehmen Sie einfach das Plugin und legen Sie es auf Ihrer neuen Website ab. Ändern Sie den Stil und voila.

Regeln und Standards

Wenn Sie das Wort IMMER so verwenden, wie wir es in unserem Tweet verwenden, kann dies Regeln und Standards bedeuten. Die Regeln und Vorschriften sind für die Mehrheit gemacht. Es wird immer Sonderfallszenarien geben, in denen Regeln verbogen und Muster gebrochen werden, aber das bedeutet nicht, dass wir Standards vollständig loswerden sollten.

Es gibt Unmengen von generischen Post-Typen, für die meist derselbe Satz zusätzlicher Metafelder erforderlich ist. Einige Beispiele, die mir in den Sinn kommen, sind: Zitate, Bücher, Rezepte, Testimonials, Portfolio usw.

Angesichts der großen Anzahl von Fotografie- und Portfolio-Themen, die auf dem freien und kommerziellen Markt verfügbar sind, ist es für den Benutzer kaum sinnvoll, alle benutzerdefinierten Post-Typ-Informationen jedes Mal neu einzugeben, wenn sich ein Thema ändert. Sehen wir uns ein Beispiel für einen Fall an:

Fotograf – Der Benutzer hat ein WordPress konfiguriert, das über eine Blog-Funktion verfügt (CPT-Veröffentlichungsstandard). Sie möchten ein Portfolio Ihrer Arbeit hinzufügen (erfordert ein CPT-Portfolio). Sie möchten Kundenreferenzen anzeigen (erfordert ein CPT-Testimonial). All diese Informationen werden sicherlich über das Design eines Themas hinausgehen. Ein Jahr später möchte der Benutzer das Erscheinungsbild der Website ändern und aktualisieren. Suchen Sie ein neues Thema mit allen ähnlichen Funktionen. In dem Moment, in dem sich das Thema ändert, BOOM. Alle zuvor eingegebenen Daten sind verschwunden. Es gibt ein Menü namens Portfolio und ein Menü namens Testimonials, jedoch sind keine Daten vorhanden. Benutzer denkt “Scheiße, ich habe alle meine Inhalte verloren.” Erstellen Sie neue Support-Fragen im Forum. Senden Sie E-Mails an Websites wie WPBeginner usw. Wenn sie keine gute Antwort erhalten, müssen sie alle Daten erneut eingeben. Dies ist eine schreckliche Benutzererfahrung.

Wie lösen wir dieses Problem?

Mögliche Lösung?

Wir schaffen eine neue Standardbasis. Justin Tadlock hat vor einiger Zeit begonnen, an diesem Thema zu arbeiten und ein einfaches Wallet-Plugin zu erstellen. Wird es die perfekte Lösung für alle sein? NEIN, aber es wird für die Mehrheit sein.

Wie Justin in seinem Beitrag fragt, welche Standardfelder im Portfolio-Plugin enthalten sein sollen (in Bezug auf das Ziel-Meta). Diese Art der Konversation sollte zwischen Entwicklern stattfinden, die ähnliche Funktionen in ihren Themen erstellen. Warum immer wieder dasselbe kopieren und von einem Thema zum anderen einfügen, wenn dies über ein Plugin möglich ist? Sobald es zum Standard wird, werden andere Themenautoren beginnen, sich daran anzupassen.

Zum Beispiel sehen wir eine Zunahme der Stilunterstützung für Gravity Forms in WordPress-Theme-Frameworks wie Genesis und anderen. Weil? Weil sie verstehen, was ihre Benutzer verwenden.

Es gibt einige robuste WordPress-Themes, die mit Funktionen geladen sind, von denen wir glauben, dass sie Plugins sein sollten. Task Board-Themen, Themen zur Problemverfolgung, Kleinanzeigen, Immobilienthemen usw. Sie sollten alle mit einem Basis-Plugin arbeiten. Es passiert bereits mit WooCommerce. WooThemes hat verschiedene Themen mit integrierter Stilunterstützung für das Plugin veröffentlicht. Andere Themenunternehmen haben ebenfalls versprochen, WooCommerce-basierte E-Commerce-Themen zu starten. Sie können von einem Thema zum anderen wechseln und alle Ihre Produkte unverändert lassen. Es ist fast so, als hätte sich das Thema geändert, aber alles passte zusammen. Dies ist die Erfahrung, das Thema zu ändern, für das wir kämpfen müssen.

Warum nicht dasselbe für Portfolio, Testimonials und andere Arten von benutzerdefinierten generischen Posts tun? Es ist, weil es sehr einfach ist vs. Ist E-Commerce ein größeres Tier, das es zu erobern gilt? Es ist klar, dass E-Commerce im Vergleich zu anderen viele Bereiche hat, daher sollte es für diese generischen Beitragstypen viel einfacher sein. Es geht nur darum, sich bewusst darum zu bemühen, Dinge zu verbessern.

Schauen Sie sich das ReciPress-Plugin an. Erstellen Sie eine benutzerdefinierte Metabox mit Rezeptfeldern und hängen Sie sie an Beiträge an. Sie können es jedoch mit benutzerdefinierten Beitragstypen anhängen. Jeder, der dieses Plugin verwendet, kann Themen ändern, ohne so viele Probleme zu haben.

Es wäre schön zu sehen, dass Themen wie AgentPress mit einem kernbasierten Plugin funktionieren. Es wäre großartig zu sehen, wie der Übergang von wechselnden Themen einfacher wird. Wenn ein Benutzer beispielsweise von einem Fotothema zu einem anderen wechselt, sollte dies kein Chaos sein. Kleine Fehler können passieren, aber zumindest im allgemeinen Szenario werden die Dinge klappen.

Sie können jederzeit Beispiele für benutzerdefinierte Beitragstypen angeben, die ausschließlich für den Kunden erstellt wurden. Dies ist jedoch die Ausnahme und nicht die Regel.

Was halten Sie von diesem Thema? Wo sollte sich die benutzerdefinierte Postleitzahl befinden? In der Datei functions.php oder in Plugins?

%d bloggers like this: