Aussehen eines einzigen Widgets ändern?

  • Hallo hilfsbereites Volk,

    ich hoffe, dass ich bei Euch mit meiner Frage richtig bin.

    Generell: Ich möchte gerne das Aussehen eines einzelnen Widgets ändern.

    Da ich keine erfahrene Programmiererin bin, sondern eher ein Autodidakt, hacke ich gerne bestehenden Code und schreibe einfach meine Änderungen da rein, wo sie meiner Meinung nach Sinn machen ohne auf Ordnung zu achten.

    Aber gerade die Ordnung im Wordpress Code (kenne bis jetzt nur OSCommerce) beeindruckt mich. Auch das Konzept der Plugins. Deswegen will ich lieber Euch fragen, wie ich am besten / korrektesten vorgehe.

    Ich benutze Wordpress in der neusten Version mit der FallSeason Theme. Das einzige Plugin, welches ich benutze, ist Gengo und darum geht es auch.
    Was will ich tun? In meiner Sidebar habe ich das "Languages" widget von Gengo. Unter der Überschrift "Languages" werden die verschiedenen Sprachen in Text aufgelistet; die aktive nicht mit einem Link hinterlegt.

    Das nimmt mir zu viel Platz weg. Ich möchte dass ohne Überschrift für jede Sprache nebeneinander kleine Fahnen angezeigt werden. Theoretisch traue ich mir die Änderungen zu, wenn ich wüßte wo ich ansetzten sollte.

    Meine Frage: Wie gehe ich am besten vor? Kann ich das ganze mit einem Plugin lösen (gebe zu, das Konzept verstehe ich -noch- nicht ganz)? Wenn nicht, wo finde ich den Code, der das Aussehen eines Widgets festlegt (irgendwoher müssen die <ul>s und die <li>s ja kommen ;-))?

    In den Templatedateien finde ich nur dynamic_sidebar(). Die Funktion dynamic_sidebar() finde ich auch, aber bevor ich da jetzt "weiter grabe" wollte ich kurz hören, ob ich da auf dem richtigen Weg bin. Ich denke nämlich nicht.

    Hoffe auf Hilfe. Zu meinem Blog kann ich leider nicht linken, weil das Verzeichnis passwortgeschützt ist.

    • 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

  • Generell: Ich möchte gerne das Aussehen eines einzelnen Widgets ändern.


    Meistens lässt sich sowas per CSS ohne große Code-Eingriffe ändern.

    Zitat

    Aber gerade die Ordnung im Wordpress Code (kenne bis jetzt nur OSCommerce) beeindruckt mich.


    Oje, ist osC immernoch so zerpflückt? Ich hatte das zuletzt vor 4 Jahren in den Händen, das sah ja aus wie direkt aus dem Zufallsgenerator gewürfelt. :-)


    Zitat

    Was will ich tun? In meiner Sidebar habe ich das "Languages" widget von Gengo. Unter der Überschrift "Languages" werden die verschiedenen Sprachen in Text aufgelistet; die aktive nicht mit einem Link hinterlegt.

    Das nimmt mir zu viel Platz weg. Ich möchte dass ohne Überschrift für jede Sprache nebeneinander kleine Fahnen angezeigt werden. Theoretisch traue ich mir die Änderungen zu, wenn ich wüßte wo ich ansetzten sollte.


    Häufig kann man die Widgets individuell einstellen,e s gibt eine Optionsseite dazu. Wenn's das nicht gibt, dann kann man das Widget direkt bearbeiten.
    Leider kenne ich das Plugin nicht, aber man kann ja nicht alles kennen. ;-)


    Zitat

    Meine Frage: Wie gehe ich am besten vor? Kann ich das ganze mit einem Plugin lösen (gebe zu, das Konzept verstehe ich -noch- nicht ganz)?


    Nein, dafür nicht. Warum ein Plugin mit noch einem Plugin anpassen? ;-)
    Was genau ist dir da unklar?

    Zitat

    Wenn nicht, wo finde ich den Code, der das Aussehen eines Widgets festlegt (irgendwoher müssen die <ul>s und die <li>s ja kommen ;-))?


    Das Widget wird sicherlich von deinem Plugin definiert, und irgendwo da findest du sicher eine PHP-Datei die eine Funktion enthält die das Widget definiert.
    Mal kurz reingeguckt habe ich in der gengo.php in Zeile 1745 was gefunden, was ganz interessant aussieht. Aber offensichtlich wird dort auch ein "Control" definiert, also solltest du irgendwo im Backend bei den Widgets was finden, womit du das Aussehen ein wenig anpassen kannst.

    Eine Einführung in die Widgets samt ausführlicher API-Doku findest du direkt beim WP-Entwickler (engl.):
    WordPressÂ*Widgets « Automattic

  • Danke für die schnelle Antwort! Ich bin mittlerweile auch im Plugin gelandet und einigermaßen fündig geworden. Ziemlich genau in der Gegend, die Du genannt hast. ;-)

    Ich habe gar nicht an Änderungen in CSS gedacht, da ich mir nicht sicher war, wie ich in CSS aus Text ein Bild machen kann. Sonst wäre das sicherlich eine Alternative gewesen.

    Ich schreibe einfach mal die Änderungen auf, die ich gemacht habe. Es sieht noch nicht perfekt aus, aber ist schon sehr nah an dem dran, was ich mir wünsche.

    Falls Posts zu Codeänderungen in Plugins in diesem Forum nicht gewünscht sind, gerne löschen! Dachte nur, dass es hilfreich sein könnte. Ganz astrein ist es nicht, da ein <ul>-Tag entsteht, welches kein <li>-Tag enthält. :oops: Mit so rabiaten Änderungen ist wahrscheinlich der "zerpflckte" OSC Code entstanden. ;)

    In gengo.php:
    Z 1753
    'Languages' zu '' ändern, um den Titel zu entfernen.

    In gengo_template_functions.php:
    z. 9
    Im Array $default_args in 'pre' aus '<li>' '' machen und in 'post' aus '</li>' '&nbsp;' machen, wobei diese Änderung mit float:left wohl am ehesten mit CSS zu erreichen wäre.

    Z 29

    PHP
    echo "$args[pre]<a class=\"gengo_lang_$entry->code\" href=\"" . $gengo->append_link_language($home, $entry->code) . "\" hreflang=\"" . $entry->code . "\">$title</a>$count_string$args[post]";
                        } else {
                          if ('false' != $args['show_current']) {
                                echo "$args[pre]<span class=\"gengo_lang_$entry->code\">$title$count_string</span>$args[post]";

    ändern in:

    PHP
    echo "$args[pre]<a class=\"gengo_lang_$entry->code\" href=\"" . $gengo->append_link_language($home, $entry->code) . "\" hreflang=\"" . $entry->code . "\"><img src=\"[Pfad zu Grafik]$entry->code.gif\" border=\"0\" alt=\"$title\" class=\"gengo\"></a> $count_string$args[post]";
                        } else {
                          if ('false' != $args['show_current']) {
                                echo "$args[pre]<span class=\"gengo_lang_$entry->code\"><img src=\"[Pfad zu Grafik]$entry->code.gif\" border=\"0\" alt=\"$title\" class=\"gengo\"> $count_string</span>$args[post]";

    Dazu natürlich noch Grafiken erstellen, die nach dem Languagecode (de.gif, en.gif etc) benannt sind und hochladen.

Jetzt mitmachen!

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