Für jede Seite und jeden Artikel eine Sidebar

  • Hi,

    hab mich schon bei den Plugins wundgesucht, aber leider noch nichts brauchbares gefunden...

    Standardmäßig hat WP ja EINE Sidebar für alle Seiten, Kategorien und Artikel.
    Gibt es ein Plugin, mit dem ich für jede Seite, jede Kategorie und notfalls jeden Artikel eine eigene Sidebar mit unterschiedlichen Inhalten erstellen kann?

    Bin für jeden Tipp dankbar!
    exciter

    • 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

  • Für jeden Artikel eine eigene Sidebar stelle ich mir sehr aufwändig vor. Ich denke, sinnvoller wäre eine Sidebar mit Inhalten passend zum Artikel, wie z.B. related posts.
    Vielleicht schreibst Du mal genauer, was Du dir bei den wechselnden Inhalten vorstellst.

  • Für jeden Artikel eine eigene Sidebar stelle ich mir sehr aufwändig vor. Ich denke, sinnvoller wäre eine Sidebar mit Inhalten passend zum Artikel, wie z.B. related posts.
    Vielleicht schreibst Du mal genauer, was Du dir bei den wechselnden Inhalten vorstellst.


    Ok, für jeden Artikel ist es vielleicht übertrieben.
    Mein Template hat eine Sidebar rechts.
    Sagen wir auf meiner Startseite will ich dort ein paar Widgets einbauen.
    Und auf jeder Category-Unterseite dann andere Widgets als auf der Haupseite. Dann benötige ich doch verschiedene Sidebars.

    Sprich für jede Seite und jede Kategorie eine indivuelle Sidebar...

  • Für zum Beispiel Kategorie 1 eine category-1.php anlegen in dieser den Aufruf

    PHP
    <?php get_sidebar(); ?>

    ändern in:

    PHP
    <?php get_sidebar(1); ?>

    die dann auf die natürlich auch angelegte sidebar-1.php verweisst.

    Damit deckst Du allerdings dann nur die Sidebar der Kategori 1 ab wenn Du die Kategorie aufrufst. Gehst Du wieder in die single.php hast wieder die alte sidebar.php um auch das zu umgehen müsstest Du in der single.php mit folgendem arbeiten:

    PHP
    if (in_category('1')) {
    get_sidebar(1);
    } else {
    get_sidebar();
    }

    Jetzt hast Du allerdings noch nicht das Problem mit den Widgets gelöst. Dazu müssen dann auch noch mehrere Sidebars definiert werden über die functions.php Den Code hab ich grad aber nicht zur Hand, ich arbeite nicht mit Widgets :-( Mit den Änderungen jetzt kannst bisher nur von Hand die Sidebars ändern.

  • Für zum Beispiel Kategorie 1 eine category-1.php anlegen in dieser den Aufruf

    PHP
    <?php get_sidebar(); ?>

    ändern in:

    PHP
    <?php get_sidebar(1); ?>

    die dann auf die natürlich auch angelegte sidebar-1.php verweisst.

    Damit deckst Du allerdings dann nur die Sidebar der Kategori 1 ab wenn Du die Kategorie aufrufst. Gehst Du wieder in die single.php hast wieder die alte sidebar.php um auch das zu umgehen müsstest Du in der single.php mit folgendem arbeiten:

    PHP
    if (in_category('1')) {
    get_sidebar(1);
    } else {
    get_sidebar();
    }

    Jetzt hast Du allerdings noch nicht das Problem mit den Widgets gelöst. Dazu müssen dann auch noch mehrere Sidebars definiert werden über die functions.php Den Code hab ich grad aber nicht zur Hand, ich arbeite nicht mit Widgets :-( Mit den Änderungen jetzt kannst bisher nur von Hand die Sidebars ändern.


    Danke schon mal für deinen Beitrag!

    Habe hier was sehr interessantes gefunden:
    http://www.webhostingsearch.com/articles/post-…ss-tutorial.php

  • http://www.webhostingsearch.com/articles/post-…ss-tutorial.php

    Hab das Tutorial mal durchgearbeitet und bin nur bis Schritt 2 gekommen :sad:

    Zitat

    Step 2 - Creating sidebar files

    Now, like the parent file sidebar.php, your newly registered sidebars also need to exist as files. Open the parent sidebar.php and copy the code over to a new html document. Save it where sidebar.php is located, as sidebar-YourSidebarName.php.
    Add the code below, above [COLOR=Red]<?php dynamic_sidebar(); ?>[/COLOR] in sidebar-YourSidebarName.php and remember to match the sidebar name in the code (bold) with the file name.

    [COLOR=#000000]
    [/COLOR]

    PHP
    <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('YourSidebarName') ) : ?> <?php endif; ?>

    [COLOR=#000000]

    [/COLOR][COLOR=Red]<?php dynamic_sidebar(); ?>[/COLOR][COLOR=#000000] existiert aber in meiner sidebar-movies.php NICHT!!! Den Inhalt von sidebar-movies.php sollte man ja wie folgt kopieren:

    [/COLOR]

    Zitat

    Open the parent sidebar.php and copy the code over to a new html document. Save it where sidebar.php is located, as sidebar-movies.php

    [COLOR=#000000]
    Was meint der Autor hier? Ich krieg den Schritt einfach nicht hin :sad:


    Weiteres Problem bei Schritt 3:


    [/COLOR]

    Zitat

    Step 3 - Adding the Custom Fields function

    Finally, you just need to implement the custom field function. Locate <?php get_sidebar(); ?> in single.php and replace it with the following code:

    [COLOR=#000000]

    [/COLOR]

    PHP
    <?php $sidebar = get_post_meta($post->ID, "sidebar", true); get_sidebar($sidebar); ?>

    [COLOR=#000000]

    [COLOR=Red]In meiner single.php existiert aber kein Code <?php get_sidebar();?>[/COLOR]

    Was muss ich tun??
    Bitte helft mir...

    [/COLOR]

  • Hi exciter,

    ich bin auch grade dabei, mir die Sidebars für unterschiedliche Kategorien zurecht zu basteln und bin dabei auf Deinen hilfreichen Link gestoßen. Danke dafür schonmal :)

    So viel vorab: Bei mir funktioniert das Tutorial, aber Wordpress mag irgendwie die unterschiedlichen Sidebars nicht übernehmen - vielleicht können wir uns ja gegenseitig helfen ;)

    Zu Deiner ersten Frage wegen:

    PHP
    <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar('YourSidebarName') ) : ?> <?php endif; ?>

    Du nimmst zuerst mal Deine originale sidebar.php. Den Inhalt kopierst Du und legst ne neue sidebar-NAME.php an. In dem Fall des Tutorials war das die sidebar-movies.php. Da kopierst Du wieder den Inhalt der originalen sidebar.php rein. Bei mir sieht der Start der neuen sidebar-movies.php dann so aus:

    PHP
    <div id="sidebar">
    
    
        <ul>
        
            <?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
            
            <li>

    Diese Datei muss in das Verzeichnis, wo Deine originale sidebar.php ist. Nix andres meint der Autor mit:

    Zitat

    Open the parent sidebar.php and copy the code over to a new html document. Save it where sidebar.php is located, as sidebar-movies.php

    Dein nächstes Problem bezieht sich auf den Schritt 3. Öffne mal Deine single.php und suche den Befehl

    PHP
    <?php get_sidebar(); ?>

    Ich weiß, Du hast den Befehl nicht. Um sicherzugehen, such nochmal fast ganz unten. Bei mir steht das in Zeile 52. Diesen Teil ersetzt Du mit:

    PHP
    <?php $sidebar = get_post_meta($post->ID, "sidebar", true); get_sidebar($sidebar); ?>

    Speichern.

    Bei mir sieht das dann so aus:

    PHP
    </div><!-- end main --> 
    <?php $sidebar = get_post_meta($post->ID, "sidebar", true); get_sidebar($sidebar); ?>
    <div class="clear"></div>
    </div><!-- end container -->

    Danach gehst Du in Wordpress mal auf Design => Editor und schaust, ob Deine sidebar-movies.php dort auftaucht. Tut sie das, hast Du bis hierher alles richtig gemacht.

    Danach gehst Du in Wordpress auf die Seite, welcher Du die neue Sidebar zufügen möchtest und bearbeitest sie. Dabei trägst Du unter "Benutzerdefinierte Felder" bei "Name" "sidebar" und bei Wert "movies" ein.

    Mein Problem ist jetzt: Ich hab mich genau dran gehalten. Ich kann die sidebars in Wordpress bestücken und ich kann sie den Seiten zuweisen. Doch es bleibt nach wie vor meine sidebar1 für alle bestehen... Sieht jemand den Fehler?

    Danke schonmal und viele Grüße!

    griffon

  • Danke für deine Hilfe!!!

    Bin jetzt auch schon stundenlang drangesessen und habs jetzt aufgegeben :-x

    Mit dem Standard-WP-Theme klappts ja noch, aber wenn ich mein Haupt-Theme aus Artisteer 2 nehme, klappt gar nichts mehr, weil Artisteer den Code der Templates ganz anders schreibt. Da blick ich einfach nicht mehr durch.

    Zudem müsste ich 2 Sidebars austauschen, was das Ganze noch komplizierter machen würde :lol:

  • Bitteschön - keine Ursache :)

    Also hast Du das mal im Original-Theme getestet? Und da geht das? Äußerst merkwürdig das Ganze..Ich hab die Sidebars, aber nix will sich ändern :D Könnt ich doch platzen ;)

    Ich glaub, ich seh schon den Wald vor lauter Bäumen nicht... Hat jemand ne Idee, warum das Theme (pyrmont-V2) das Zeug nicht zu übernehmen scheint?

  • Bitteschön - keine Ursache :)

    Also hast Du das mal im Original-Theme getestet? Und da geht das? Äußerst merkwürdig das Ganze..Ich hab die Sidebars, aber nix will sich ändern :D Könnt ich doch platzen ;)

    Ich glaub, ich seh schon den Wald vor lauter Bäumen nicht... Hat jemand ne Idee, warum das Theme (pyrmont-V2) das Zeug nicht zu übernehmen scheint?


    griffon, das Problem ist, das es mit einem wirklich simplen und sauber geschriebenen Template wie dem Original-Template von WP wunderbar klappt. Aber wenn das Template anders bzw. unsauber gecodet ist, wird die ganze Sache schon viel schwieriger...
    Mit einem etwas komplexeren Theme mit 2 Sidebars aus Artisteer 2 kam ich z.B. auch nicht klar.

    Es gibt ja auch ein paar Plugins, hast du dir die schon mal angesehen?

    Sidebar Generator
    http://wordpress.org/extend/plugins/sidebar-generator/

    Sidebars
    http://wordpress.org/extend/plugins/sidebars/

    Ich hoffe doch sehr, es erscheint irgendwann ein Plugin, mit dem man das Ganze ohne viel Aufwand steuern kann... sonst ist doch auch so viel möglich in WP ;)

  • Hey,

    vielen, vielen Dank!

    Ich habs mal mit dem Sidebar Generator versucht, und der funktioniert. Mal bissl im Code rumgestochert und mit dem Tutorial verglichen, und irgendwie macht der auch nix andres - aber mir solls egal sein, das Teil funktioniert!

    Eigentlich wären ein paar mehr Programmierkenntnisse hilfreich. Aber deswegen wende ich mich ja auch ans Forum, weil ich die nun mal nicht hab ;) Mit der Zeit kommt alles ;)

    Beste Grüße,

    griffon

Jetzt mitmachen!

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