Mit Widgets oder besser ohne?

  • Hallo,

    ich passe gerade mein selbst erstelltes Theme für meinen Blog an und bin mittlerweile bei der sidebar.php angekommen. Nun stellt sich mir eine grundsätzliche Frage: Sollte ich mit Widgets arbeiten oder sollte ich besser auf Widgets verzichten?

    Vorab sei gesagt, dass ich nach Möglichkeit ohne viele zusätzliche Plugins und Widgets auskommen möchte. Und die Funktionalität der dynamischen Sidebar ist zwar ganz nett, aber es für mich auch kein Problem, eben drei Zeilen HTML-Code zu schreiben und einen Template-Tag zu setzen. Ob mit oder ohne Widgets, in jedem Fall muss ich versteckte HTML-Tags im PHP-Code entfernen, was mich tierisch ärgert und mich beinahe soweit treibt, Wordpress wieder in die Tonne zu kloppen.

    Anyway, mir geht letztendlich nur darum, ob Widgets eventuell ein Sicherheitsrisiko darstellen (auch wenn ich nur die Standard-Widgets verwenden würde) und ob die Verwaltung meiner Themes auf Dauer einfacher wird, wenn ich Widgets verwende. Ich habe bereits heraus gefunden, wie ich den HTML-Code der Widgets hoffentlich ohne Eingriffe in Dateien außerhalb des Themes erweitern kann. Derzeit ist es so, dass ich den bescheuerten HTML-Code in diversen PHP-Dateien gelöscht habe, damit ich die Elemente meines Themes in den Templates gestalten kann, wie es eigentlich sein sollte. Dieses Vorgehen hat natürlich große Nachteile, besonders dann, wenn mal wieder Updates anstehen.

    Also, sollte ich Widgets benutzen auch wenn sie mir eigentlich nichts bringen außer vielleicht die Möglichkeit, nicht mehr in PHP-Dateien außerhalb des Themes herum pfuschen zu müssen, oder sollte ich aus Sicherheits- und Performancegründen auf Widgets verzichten, wenn ich den resultierenden Mehraufwand nicht scheue?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Also ich würde bei einem neuen Theme immer auf Widgets setzen, da Du damit einfach flexibler bist. Es macht sich nun mal besser, die Einstellungen eines Widgets im Backend anzupassen als die sidebar.php zu bearbeiten und neu auf den Server zu laden.

    Viele aktuelle Plugins bringen zudem fertige Widgets mit, auch das geht einfacher als die Funktionen rauszusuchen und in die sidebar.php zu schreiben. Und für alle speziellen Belange kannst Du relativ simpel eigene Widgets in der functions.php ablegen.

    Was Sicherheit betrifft, sollte das auch egal sein. Und Performance: Vermutlich wird die manuelle sidebar.php schon schneller sein, aber der Unterschied sollte eigentlich eher nicht spürbar sein für den Benutzer. Und wenn Du richtig hohe Zugriffszahlen hast, musst Du Dir eh Gedanken über bessere Hardware und Caching machen.

    Zitat

    Ob mit oder ohne Widgets, in jedem Fall muss ich versteckte HTML-Tags im PHP-Code entfernen, was mich tierisch ärgert und mich beinahe soweit treibt, Wordpress wieder in die Tonne zu kloppen.

    Da bin ich nicht ganz sicher, was Du meinst, aber kann es sein, dass das ein Verständnisproblem ist? Schilder uns ggf. doch mal genauer, was Dich stört. Generell solltest Du eigentlich den von WP generierten Quellcode schon so ziemlich anpassen können. Viele Methoden haben z.B. Parameter wie "before" und "after", mit denen man regeln kann, in welche HTML-Tags der Output eingeschlossen wird, wenn einem der Standard nicht gefällt. Bei Widgets kannst Du analog regeln, in was sie eingeschlossen werden sollen.

  • Mit Parametern wie ".before" und ".after" liegst du schon ganz richtig. An denen schraube ich fleißig herum, damit der HTML-Code so ausschaut, wie ich es für richtig halte. Ich arbeite einfach lieber mit Containern als mit verschachtelten Listen. Diese Änderungen finden aber nicht in den Themes statt, und das ist eben nachteilig etwa bei Updates, die die Änderungen wieder überschreiben.

    Der Mehraufwand bei der Einrichtung der Sidebar stört mich wie gesagt nicht weiter, da ich ohnehin nicht mit Plugins und Widgets um mich werfen möchte. Reizvoll ist aber die Aussicht, dass ich die Widgets hoffentlich vollständig in den Themes gestalten kann. Voraussetzung dafür wäre, dass die Widgets im PHP-Code nur <li>-Tags (die Ausgabe der Daten umschließen) verwenden und ich alle anderen Code-Elemente in der functions.php bearbeiten kann. Da muss ich nochmal einen genauen Blick auf die Widgets werfen.

  • Zitat

    Mit Parametern wie ".before" und ".after" liegst du schon ganz richtig. An denen schraube ich fleißig herum, damit der HTML-Code so ausschaut, wie ich es für richtig halte. Ich arbeite einfach lieber mit Containern als mit verschachtelten Listen. Diese Änderungen finden aber nicht in den Themes statt, und das ist eben nachteilig etwa bei Updates, die die Änderungen wieder überschreiben.

    Also zuerst mal: Tu Dir selbst den Gefallen und ändere nichts an den Core-Dateien von WordPress. Da hast Du auf Dauer keinen Spaß dran, und in 99.9% der Fälle ist es auch unnötig. In diesem Fall definiert man z.B. den HTML-Code, den man gerne vor und nach Widgets angezeigt hätte, auch einfach in der functions.php des Themes, was insofern Sinn macht, da sich die Widgets ja HTML-mäßig ins Theme einfügen müssen. In einem meiner Themes sieht das z.B. so aus:

    Damit setze ich, was ich rund um den Titel des Widgets haben möchte. Analog gibt es auch "before_widget" und "after_widget", an der gleichen Stelle zu setzen.

    Ansonsten wäre noch wichtig zu wissen, dass mit WP 2.8 die Widgets auf eine Klasse umgestellt wurden. Eigene Widgets zu definieren ist jetzt ein wenig aufwändiger als vorher, und wenn Du nach Tutorials suchst, musst Du drauf achten, keine zu alten zu finden. Mal schauen... Auf die Schnelle ergoogelte Tutorials dazu wären z.B. diese:
    http://wpengineer.com/wordpress-built-a-widget/
    http://dynamicinternet.eu/blog/2009-03-3…dget-erstellen/
    http://camp.woothemes.com/2009/06/creati…the-widget-api/

  • Ich hab ja oben schon geschrieben, dass mir die die Möglichkeiten der Functions.php im Ordner des Themes bekannt sind und ich hab gestern auch ein wenig experimentiert und festgestellt, dass sich zumindest die meisten Standard-Widgets problem- und nahtlos in meinen HTML-Code einpassen lassen. Daher bleibe ich nun auch bei den Widgets, allein schon weil sie einigermaßen angenehm zu gestalten sind. Viel schöner wäre natürlich, wenn jeder HTML-Schnipseln in der functions.php definieren ließe, also nicht nur der Code vor und nach dem Widget und der Überschrift sondern auch vor und nach den Inhalten, die das Widget ausspuckt.

    Dennoch habe ich einige kleine Eingriffe im PHP-Code vorgenommen, dort aber lediglich die HTML-Ausgabe an meine Vorstellungen angepasst. Ich hab es eben gerne, wenn der HTML-Code sauber ausgegeben wird und nicht als Textwüste, wie ich es bei vielen Blogs beobachte. Diese Änderungen beißen sich nicht mit Updates. Im schlimmsten Falle wird mir nach einem Update eben wieder eine Quellcode-Wüste ausgegeben, in der man nichts mehr wieder findet, vor allem nicht etwaige Fehler.

    Vielen Dank im übrigen für die Links :)
    Ich werde mich mal nachher durch diese Links durcharbeiten.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!