Widget in Templates (Seitenvorlagen) ändern

  • Hi,

    ich bin gerade dabei meine Seite http://goled-myanmar.org optisch zu optimieren.

    Auf den Seiten "Wir über uns", "Alle Beiträge" und "Archiv" wird rechts ein Widget "Breaking News" mit den neuesten Artikeln eingeblendet. Dies ist standardmäßig vom Theme vorgegeben.

    Ich würde dort gerne ein anderes Widget, nämlich "Random Posts" einbinden.

    Ich weiß, dass man Widgets im Menü unter "Widgets" ändern kann. Dies wirkt sich jedoch nur auf die Frontpage aus. Ich habe schon versucht im Editor die Seitenvorlagen (Templates) zu ändern. Denn ich nehme an, dort ist das "Breaking News"-Widget eingebettet. Dort kann ich aber nichts finden :cry: bzw. bin unfähig.

    Wie kann ich das Widget in den einzelnen Seitenvorlagen ändern?

    Vielen Dank für die Hilfe,
    Daniel

    • 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

  • Hi,

    wie du schon richtig erkannt hast, sind WidgetBars immer Templatespezifisch. Wenn du an verschiedenen Seiten im Template unterschiedliche Widgets angezeigt bekommen möchtest gibt es 2 (mir bekannte) Möglichkeiten:

    1. Du registrierst dir eigene Sidebarwidgets im Code:
    Hier musst du etwas PHP können und die entsprechenden Sidebars einbinden. Dazu solltest du mal in den Codex schauen wie das geht. Stichwort müsste hier sein: dynamic_sidebar()

    Hier ist ein Tutorial, der macht das allerdings für den Footer. Ist aber vom Prinzip her das gleiche.
    http://www.morvagor.de/1773/eigenes-w…ter-einrichten/

    2. Du nutzt ein Plugin:
    Das dürfte für das das bequemere sein! Schau dir dazu mal das Plugin Widget Logic an:
    http://wordpress.org/extend/plugins/widget-logic/
    Wenn du das installiert hast, bekommst du unter jedes Widget so ein Eingabefeld. In das EIngabefeld kannst du PHP anweisungen machen auf welcher Seite ein Widget angezeigt werden soll, und auf welche z.B. nicht (Doku lesen!)
    Vorzustellen wäre als eine Abfrage (in Pseudo-Code):

    if(aktuelleSeite == Page) ---> dann wird das Widget angezeigt.

    so oder so ähnlich ging das glaube ich.

  • Ich versuche mich jetzt mal auf deine erste Alternative zu stürzen, da ich das mit dem Plugin auch recht kompliziert finde.

    Ich habe jetzt immerhin schon mal den Code für das Widget im Template gefunden

    PHP
    <?php include KT_HELPER_PATH . '/sidebar-single.php'; ?>    </div><!--main-->
        <br class="clear"  />
    </div><!-- main-wrapper -->

    wobei die "sidebar-single.php" das besagte "Breaking News"-Widget ist. Der Plan, diesen Teil durch die .php des anderen Widgets zu ersetzen scheitert leider. Ich möchte das "Advanced Random Posts"-Widget einbetten, welches ich jedoch als Plugin installiert habe. Daher finde ich hierfür keine .php-Datei.

    PS. Was ist KT_HELPER_PATH?

    Einmal editiert, zuletzt von dondomon (1. Mai 2013 um 12:20)

  • Poste mal bitte den Inhalt der Datei sidebar-single.php

    Dann bitte sag mir noch aus welcher Datei du den eben gerade genannte Code rauskopiert hast

    Und KT_HELPER_PATH ist sicherlich etwas templatespezifisches. Wahrscheinlich erst mal nicht weiter relevant.

  • Hi,

    ich benutze das Plugin "Widget Context", um auf den Seiten, je nach Bedarf, die verschiedenen Widgets ein- oder auszuschalten. Die Anwendung ist überaus einfach.

    Gruß
    Chris-Chros

  • Hier die sidebar-single.php

    Den Codeschnipsel aus dem vorigen Post habe ich aus der template-blog.php, welche sich im Ordner meines Themes, also /wp-content/themes/..., befindet.

  • Chris-Chros:
    Die Idee mit deinem Widget ist gut und ich habe es ausprobiert. Leider funktioniert das Plugin auf meiner Seite nicht. Ich nehmen an, da meine template-blog.php, wenn ich sie im Editor von WP öffne so aussieht:

    Ich vermute, dass von dort aus zu der anderen template-blog.php verwiesen wird, welche sich im Ordner des Themes befindet.

    Jedenfalls hat das Plugin keinen Einfluss auf meine Page, weder die Option "show widget everywhere" noch "hide widget everywhere"

  • Also hoffe meine Gedankengänge sitmmen jetzt:

    Die template-blog.php ruft mit

    PHP
    <?php include KT_HELPER_PATH . '/sidebar-single.php'; ?>

    den Inhalt der sidebar-single.php auf. Diese Sidebar Datei ruft die registrierte Sidebar 'single-sidebar' auf (Zeile 3)

    Allerdings sieht mir deine "Wir über uns" Seite nicht aus als wäre das über die template-blog.php aufgerufen. Vielmehr dürfte das eine Page sein. Also aufgerufen über die page.php

    Check mal die page.php ob da auch ein Aufruf auf die sidebar-single.php ist.

    Wenn du das so ist, dann erklärt dass das schon. Dann wird natürlich von jeder Seite auf die gleiche sidebar aufgerufen, und auf jeder Seite erscheint die gleiche Sidebar.

    Wenn du jetzt für unterschiedliche Seitentypen unterschiedliche Sidebars haben willst musst du die auch unterschiedlich einbinden.

    Also am Beispiel der page.php

    Aufruf der neuen Sidebar z.B. mit:

    PHP
    <?php include KT_HELPER_PATH . '/sidebar-[B]page.php[/B]'; ?>

    dann erstellst du dir eine Kopie der singe-sidebar.php, nennst die eben um in sidebar-page.php und steuerst in Zeile 3 nicht die single-sidebar sondern eine page-sidebar an.

    Diese page-sidebar muss aber noch in der functions.php registriert werden. Ungefähr so:

    Code
    register_sidebar(array(   'name' => __( '[B]page-sidebar[/B]' ),   'id' => '[B]page-sidebar[/B]',   'before_title' => '<h1>',   'after_title' => '</h1>' ));

    Sorry, ich hoffe ich sorge jetzt nicht für zu viel Verwirrung. Ich würde das ehrlich gesagt erst noch ein bischen mit dem Widget testen bevor zu da rangehst. Sofern du noch nicht ganz so fit mit PHP und den Wordpress Funktionen bist, wäre das sicherlich eine gute alternative (wenns geht)

    Und mach dir ein Backup vom Template ;)

    Viel Erfolg

  • Vielen Dank erst mal für deine Hilfe.
    Ich werde das heute Abend mal testen. Leider muss ich jetzt weg, meiner Schwester beim Umzug helfen.

    Ich gebe Rückmeldung wie es funktioniert hat.

Jetzt mitmachen!

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