X

Sehr geehrte Theme-Entwickler, hört auf, zufällige Code-Schnipsel in functions.php einzufügen

Stellen Sie sich dieses Szenario vor: Sie finden einen wirklich coolen Code-Schnipsel auf einer der vielen WordPress-Tutorial-Seiten und fügen ihn in die functions.php-Datei Ihres Themes ein.

Der Code-Schnipsel funktioniert wie beworben, und Sie veröffentlichen Ihr Theme dann zum Verkauf auf einem bekannten Theme-Marktplatz. Nehmen wir einen zufälligen aus dem Hut und entscheiden uns für… ThemeForest.

Plötzlich wird Ihr Theme sehr beliebt, vielleicht wegen der riesigen Liste von anscheinend nützlichen „Funktionen“, die Sie auf der Verkaufsseite Ihres Themes aufgeführt haben. Mit dem Erfolg Ihres Themes kommen auch eine Reihe von Supportanfragen, meistens im Zusammenhang mit Plugins, die bei der Verwendung Ihres Themes Probleme verursachen.

Wie konnte das passieren, fragen Sie sich? Vielleicht liegt es daran, dass Sie blindlings zufällige WordPress-Codebrocken in Ihre functions.php-Datei eingefügt haben, ohne über mögliche Kompatibilitätsprobleme nachzudenken oder diese vorherzusehen.

Ein reales Beispiel

Ich habe also versucht, einen Code-Schnipsel zu finden, der alle angehängten Bilder eines Beitrags abruft und sie dann automatisch in diesem Beitrag anzeigt. Ich fand schließlich ein Stück Code auf Stack Overflow, fügte es in meine functions-Datei ein, und es schien das Problem zu lösen.

Die erste Zeile des Codes lautete wie folgt:

add_filter('the_content', 'strip_shortcodes');

Na ja, es funktionierte, ich dachte nichts weiter darüber nach. Später versuchte ich, ein Kontaktformular mit einem Shortcode einzubetten. Überraschung, es funktionierte nicht und ich verbrachte etwa eine Stunde damit, herauszufinden, warum. Wenn ich den Code, den ich einfügte, tatsächlich gelesen hätte, hätte ich es gewusst.

Dies war für eine Kunden-Website, nicht für ein veröffentlichtes Theme, daher musste ich mich glücklicherweise nicht mit einer Flut von Supportanfragen aufgrund meines dummen Fehlers auseinandersetzen.

Was kommerzielle Plugin-Entwickler denken

Hier ist ein Zitat von Carl Hancock (Entwickler von Gravity Forms) zu diesem Thema:

Die Unterstützung des beliebten Gravity Forms-Plugins bedeutet, dass wir mehr als unseren Anteil an schlecht codierten Themes sehen. Eines der primären supportbezogenen Probleme, auf die wir stoßen, sind Themes, die nicht nach Best Practices entwickelt wurden, was zu Styling-Problemen bei Gravity Forms und in einigen Fällen zu Konflikten führt, die dazu führen, dass Gravity Forms nicht richtig funktioniert.

Der größte Übeltäter in diesen Situationen sind Themes, die Code-Schnipsel enthalten, die von Tutorial-Seiten kopiert und eingefügt wurden. Theme-Entwickler scheinen zu denken, dass der Code-Schnipsel gut sein muss, nur weil er auf einer Tutorial-Seite war. Leider ist das nicht immer der Fall und diese schlechten Entscheidungen führen zu Kopfschmerzen und Support-Problemen für die Benutzer.

Möchten Sie das Potenzial für Probleme mit Plugins, die durch ein schlecht entwickeltes Theme verursacht werden, begrenzen? Halten Sie sich an seriöse Theme-Entwickler wie Press75, iThemes, Headway Themes, Organic Themes, WooThemes und StudioPress, um nur einige zu nennen. Seien Sie vorsichtig bei Theme-Marktplätzen, auf denen die Erfahrung und der Fähigkeitsgrad des Autors möglicherweise fehlen. In den meisten Fällen bekommen Sie, was Sie bezahlen.

Best Practices für die Codierung

Viele dieser Probleme lassen sich wahrscheinlich vermeiden, indem man die WordPress-Codierungsstandards befolgt. Zum Beispiel sollten Sie Präfixe für Ihre Funktionsnamen verwenden, um potenzielle Konflikte zu vermeiden.

Bei Styling-Problemen mit Gravity Forms möchten Sie möglicherweise bestimmte allgemeine Stile für form- und input-Elemente vermeiden und stattdessen die Standard-ID-Selektoren von WordPress für den Großteil Ihres Formular-Stylings verwenden.

Dazu gehören #searchform, #s, #searchsubmit im Suchfeld. Außerdem #commentform #author, #url, #email, #comment, #submit für das Kommentarformular.

Fazit

Wenn Sie ein Theme-Entwickler sind und nicht sehr gut in PHP bewandert sind, seien Sie vorsichtig, wenn Sie diese Code-Schnipsel in Ihr Theme kopieren und einfügen. Selbst wenn Sie nicht so gut in PHP sind, können Sie den Code zumindest durchlesen und versuchen, ihn zu verstehen, bevor Sie ihn verwenden.

Wenn Sie zum Beispiel feststellen, dass Ihre Shortcodes nicht richtig funktionieren, könnte eine Codezeile, die „strip_shortcodes“ erwähnt, etwas damit zu tun haben.

Manchmal habe ich das Gefühl, dass WordPress-Theme-Entwickler einfach zufällige Code-Schnipsel in ihre functions.php-Datei einfügen, nur um eine weitere „Funktion“ auf den Verkaufsseiten ihres Themes auflisten zu können.

Obwohl ich kein großer Fan dieser Art von Idee bin, führt dies zu einer ganz anderen Diskussion über die Rolle von Themes und Plugins auf WordPress-Websites, die ich für einen zukünftigen Beitrag aufheben werde.

Kommentare   Hinterlasse eine Antwort

  1. Interessant.. Ich bin selbst Theme-Entwickler, danke, dass Sie mich darauf aufmerksam gemacht haben…

  2. Ich habe sogar Leute gesehen, die Code mit Copyright-Hinweisen kopiert und eingefügt haben (die darum bitten, dass der Code nicht weitergegeben wird!) immer noch intakt.

    @mkjones – ist das Problem, dass der Filter entfernt wurde, oder dass seine Entfernung nicht angekündigt wurde? Ich entferne fast immer den wpautop-Filter, weil er perfekt guten HTML-Code automatisch zerstört (natürlich sage ich jedem, dass er weg ist).

  3. Was mich am meisten ärgert, ist, wenn sie Jquery (und 20+ andere Skripte/Plugins) direkt in den Header ihres Themes einfügen oder in irgendeinem schwer zu findenden Ort. Ist wp_enqueue_script so schwierig?

    1. Ich habe tatsächlich ein schnelles Beispiel für ein Themeforest Jquery Fiasco in meinen Foren gepostet, falls jemand es sich ansehen möchte.
      Ich wollte nur noch eine Sache hinzufügen, die für einige Ihrer Leser hilfreich sein könnte.
      Anfang dieses Monats habe ich einem Kunden geholfen, der eine Supportlizenz für mein Plugin erworben hatte. Das Theme des Kunden hatte ungefähr 20 verschiedene Jquery-Plugins in der header.php geladen. Keines davon verwendete wp_enque_script.
      Die meisten dieser Skripte wurden nur für den Home-Page-Slider und die Galerie-Seite (die noch nicht existierte) verwendet. Da sie auf der gesamten Website geladen wurden, verursachten die Skripte Jquery-Fehler auf allen anderen Seiten der Website, die diese Skripte nicht benötigten.
      Anstatt die gesamte header.php neu zu schreiben und weil ich nicht wusste, ob einige der Skripte für zukünftige Seiten benötigt werden könnten. Ich habe ein paar bedingte Tags verwendet, um das Problem zu lösen. Durch die Verwendung von bedingten Tags konnte ich alle willkürlichen Skripte deaktivieren, wenn die Website das Registrierungsformular lud, das von meinem Plugin generiert wurde.
      Ich habe tatsächlich ein schnelles Beispiel für ein Themeforest Jquery Fiasco in meinen Foren gepostet, falls jemand es sich ansehen möchte.

      1. Entschuldigung Leland, kannst du die erste Zeile in meinem letzten Kommentar entfernen? Ich dachte, ich hätte sie vor dem Posten entfernt.

        Danke!

  4. Oh MANN, ich hasse das. Das verursacht endlose Kopfschmerzen bei der Anpassung von Themes.

    Ich erinnere mich an den Klassiker:

    remove_filter(‘the_content’, ‘wpautop’);

    Schlich sich vor einer Weile ein. Ohne ordnungsgemäß als Theme-„Feature“ beworben zu werden 🙁

  5. Ich stimme Ihnen hier vollkommen zu! Ich bin diesen Weg schon gegangen und habe selbst diesen Fehler gemacht, nur um später in Schwierigkeiten zu geraten.

    Die Dinge, die Sie mit Ihrer functions.php tun können, sind großartig, aber Sie müssen organisiert und vorsichtig sein, was Sie tun, wenn Sie nicht stundenlang später debuggen wollen.

    Eine der Empfehlungen, die ich geben würde, wäre, diese Code-Schnipsel sorgfältig zu organisieren, wenn Sie sie behalten möchten.
    Bewahren Sie sie in separaten Dateien auf, gut kommentiert, testen Sie sie nach der Implementierung doppelt. Am Ende zahlt sich die Dokumentation Ihrer Arbeit meiner Meinung nach immer aus.

  6. Hätte es nicht besser sagen können. Dies beschränkt sich nicht nur auf zufällige Code-Schnipsel, die in Tutorials im Web zu finden sind. Theme-Entwickler werfen einfach zufällig beliebigen Code in functions.php, ohne darüber nachzudenken – man sollte meinen, sie würden ab und zu einen Hook verwenden.

Kommentar hinzufügen

Wir freuen uns, dass Sie einen Kommentar hinterlassen haben. Bitte beachten Sie, dass alle Kommentare gemäß unserer Datenschutzrichtlinie moderiert werden und alle Links nofollow sind. Verwenden Sie KEINE Schlüsselwörter im Namensfeld. Lassen Sie uns ein persönliches und bedeutungsvolles Gespräch führen.

WordPress Launch Checkliste

Die ultimative Checkliste für den Start von WordPress

Wir haben alle wichtigen Checklistenpunkte für den Start Ihrer nächsten WordPress-Website in einem praktischen E-Book zusammengefasst.
Ja, senden Sie mir das kostenlose E-Book!