Sidebar wechseln mit 'in category'

  • Hallo Forum,

    ich habe zwei sidebar.php -Dateien und frage außerhalb des Loops, in welcher Kategorie sich der jeweilige Post befindet. Gehört er zu den genannten Kategorien, dann soll eine bestimmte Sidebar verwendet werden. Es funktioniert aber nur bei der ersten Kategorie 'Presse' nicht aber bei den anderen Kategorien. Was mache ich falsch?

    Code:[INDENT][size=10]<?php if ( in_category(array('Presse','Kooperationen','English content')) ) {
    include (TEMPLATEPATH . '/sidebar-page.php');
    }
    else {
    include (TEMPLATEPATH . '/sidebar-single.php');
    }
    ?>[/SIZE]
    [/INDENT]Freue mich über Hilfe,
    V.

    • 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

  • Versuche:

    Code
    if (array([size=10]in_category[/SIZE]([size=10]'Presse','Kooperationen')) )[/SIZE] {
    get_sidebar([size=10]'page'[/SIZE]);
    }[size=10]
    else {
    [/SIZE]get_sidebar([size=10]'[/SIZE][size=10]single[/SIZE][size=10]'[/SIZE]);[size=10]
    }[/SIZE]
  • Alle Kategorien geben sidebar-page.php aus

    Vielen Dank Scotti! Der Code gibt jetzt überall die sidebar 'page' aus. Die Variante ELSE='single' funktioniert nicht. Auf den mit ELSE bezeichneten Posts wird die sidebar 'single' nicht ausgegeben. Hm.

  • Was auch nicht funktioniert:

    <?php
    if ( in_category('Presse') ) {
    get_sidebar('page');}
    elseif ( in_category('Kooperationen') ) {
    get_sidebar('page');}
    elseif ( in_category('English content') ) {
    get_sidebar('page');}
    else {
    get_sidebar('single'); }
    ?>

    Die Varianten elseif enthalten die sidebar 'single' statt 'page'. Bei Presse + allen anderen stimmt es. :?:

  • Vielen Dank.
    wp_reset_query() hilft leider auch nicht. Bei der folgenden Variante des Codes erhalten alle die sidebar 'page'.
    Hier der ganze Code meiner single.php:

  • Das war des Rätsels Lösung

    PHP
    <?php
    $counter=0;
    foreach($posts as $post) {
        $counter=$counter+1;
        setup_postdata($post);
    
    
    ?>
    [COLOR=Red]<?php wp_reset_postdata(); ?>[/COLOR]

    Da wäre ich im Leben nicht drauf gekommen, dass der Loop die aktuelle Kategorie durcheinander bringt. Und PHP kann ich ja ehrlich gesagt auch nicht. Aller herzlichsten Dank - nun schon zum zweiten mal!

Jetzt mitmachen!

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