Seite 1 von 1

Sidebar bei Produktanzeige wechseln

Verfasst: 29.07.2015, 08:13
von HOppermann
Hallo in die Runde,

in meinem WP Template habe ich eine extra Sidebar für die Shopumgebung aufgebaut. Diese wurde in ein Seitentemplate integriert, welches auch für die Shop - Startseite verwendet und korrekt angezeigt wird.
Da ich gerne das Modul "Produktartikel" in Verbindung mit "Produktübersichten" verwenden möchte, besteht hier nun das Problem, dass bei der Produkteinzelanischt des CustomPost Types das Theme Standard - Seitentemplate verwendet wird, welches die genannte Sidebar natürlich nicht enthält.

Daher meine Fragen:
- Besteht die Möglichkeit das Shop - Template derart anzupassen, dass es die abweichende ("ShopSidebar") aufruft?
oder
- Besteht die Möglichkeit dem Modul "Produktübersicht" bei Klick auf "zum Produkt" ein anderes Produkt - Template (welches die abweichende "ShopSidebar" beinhaltet) zuzusweisen?
oder
Und das ist wahrscheinlich die "einfachste" Lösung - geht dies lediglich über eine Abfrage im Theme - Standart Seitentemplate (page.php) welche die Kategorien abfragt (<?php in_category( $category, $_post ) ?>) die ja im Zusammenhang mit dem Modul "Produktartikel" anzulgegen sind - und dann die entsprechende Sidebar mittels <?php get_sidebar( $name ); ?> aufruft ?

Zur Verdeutlichung hier der Link zum Shop (ist aber noch in Entwicklung)
http://tachundnacht.de/shop

Freue mich über jede Antwort und sage schon einmal Danke im Voraus!

Holger

Re: Sidebar bei Produktanzeige wechseln

Verfasst: 29.07.2015, 09:16
von MKJ
Du kannst eine Sidebar nicht über ein WPSG Template laden.
HOppermann hat geschrieben:Und das ist wahrscheinlich die "einfachste" Lösung - geht dies lediglich über eine Abfrage im Theme - Standart Seitentemplate (page.php) welche die Kategorien abfragt (<?php in_category( $category, $_post ) ?>) die ja im Zusammenhang mit dem Modul "Produktartikel" anzulgegen sind - und dann die entsprechende Sidebar mittels <?php get_sidebar( $name ); ?> aufruft ?
Das ist der richtige Ansatz. Ich würde aber den Custom Post Type abfragen, das ist sauberer als Deine Idee.

Re: Sidebar bei Produktanzeige wechseln

Verfasst: 30.07.2015, 06:08
von HOppermann
Besten Dank für die schnelle Antwort und den Tipp - der Custom Post Type ist wirklich besser abzufragen.

Hier hätte ich nur lediglich noch die kurze Frage nach dem genauen Namen, außer dieser ist vom Titel abweichend ...

Lieben Dank schon einmal im Voraus !

Re: Sidebar bei Produktanzeige wechseln

Verfasst: 05.08.2015, 12:55
von HOppermann
Hallo noch einmal,

habe das Modul nun erworben und die papge.php um die folgende Abfrage erweitert:

Code: Alles auswählen

<?php if (get_post_type() == 'produkte') {
get_sidebar('shop');
} else {
get_sidebar();
}
?> 
Soweit so gut, aber leider wird beim Aufruf eines Artikels die Standtard Sidebar aufgerufen - ich vermute, es liegt an der (fehlenden) genauen Bezeichnung des CustomPost Types bei den Produktartikeln. Beim Aufruf des Entsprechenden Eintrags im Backend (also um z.B. ein Produkt im "Produktartikel" Bereich zu verwalten) wird in der Browserzeile posttype=produkt angezeigt, daher vermutete ich, das dies der Name war ...

Daher würde ich gerne den genauen Namen des CustomPost Types für das Modul Produktartikel wissen ... dann klappt bestimmt auch die Abfrage ;)

Lieben Dank schon einmal im Voraus!

Re: Sidebar bei Produktanzeige wechseln

Verfasst: 05.08.2015, 13:21
von MKJ
HOppermann hat geschrieben:Daher würde ich gerne den genauen Namen des CustomPost Types für das Modul Produktartikel wissen ... dann klappt bestimmt auch die Abfrage ;)
Das ist der Path Key im Modul Produktartikel. Wenn Du den nicht geändert hast, ist "produkte" an sich schon richtig.

Re: Sidebar bei Produktanzeige wechseln

Verfasst: 06.08.2015, 17:04
von HOppermann
MKJ hat geschrieben:Das ist der Path Key im Modul Produktartikel. Wenn Du den nicht geändert hast, ist "produkte" an sich schon richtig.
Danke für den Hinweis! Abfrage funktioniert jetzt auch! Nur der Korrektheit halber und für evtl. zukünftige Leser:
es muss die "single.php" damit versehen werden - NICHT die page.php des Templates. Die Frage zielte ja auf eine Produkt - Einzelansicht ;)

Re: Sidebar bei Produktanzeige wechseln

Verfasst: 06.08.2015, 17:09
von MKJ
HOppermann hat geschrieben:es muss die "single.php" damit versehen werden - NICHT die page.php des Templates. Die Frage zielte ja auf eine Produkt - Einzelansicht ;)
Auch wieder logisch. :lol: Schön wäre noch, wenn Du hier das Snippet einstellst, mit dem die Sidebar registriert wurde. Dann können wir das in die fertigen Mods verschieben.

Re: Sidebar bei Produktanzeige wechseln

Verfasst: 06.08.2015, 19:16
von HOppermann
Na gerne doch :-D

Code: Alles auswählen

    <?php if( get_post_type() == 'produkte' ) {
	get_sidebar('shop');
    } else {
        get_sidebar();
    }?>   
Wobei "shop" die abweichende Sidebar ist, welche im WP Backend erstellt wurde.

Re: Sidebar bei Produktanzeige wechseln

Verfasst: 09.08.2015, 10:40
von MKJ
Ah, Du hast sowieso schon mehrere Sidebars im Theme. Ich meinte eigentlich das Registrieren, sofern man nur eine Sidebar hat. Hier ist der Code aus dem WP Codex. Das sollte funktionieren. Nur der Vollständigkeit halber:

Code: Alles auswählen

add_action( 'widgets_init', 'theme_slug_widgets_init' );
function theme_slug_widgets_init() {
    register_sidebar( array(
        'name' => __( 'shop', 'theme-slug' ),
        'id' => 'sidebar-1',
        'description' => __( 'Die Shop Sidebar', 'theme-slug' ),
        'before_widget' => '<li id="%1$s" class="widget %2$s">',
	'after_widget'  => '</li>',
	'before_title'  => '<h2 class="widgettitle">',
	'after_title'   => '</h2>',
    ) );
}

Re: Sidebar bei Produktanzeige wechseln

Verfasst: 12.08.2015, 09:47
von HOppermann
MKJ hat geschrieben:Ich meinte eigentlich das Registrieren, sofern man nur eine Sidebar hat.
Ach so, sorry - das hatte ich falsch verstanden.

Hier noch ein kleiner Tipp, um nicht in der single.php die Abfrage der Sidebar zu machen:

Einfach ein Template für den Custom Post Type anlegen und dort dann die "neue" (bzw. zweite) Sidebar einbinden!

Hier die Anleitung aus dem WP Codex:
Make a copy of the single.php or archive.php file as a starting point. That way they will inherit some of the theme's html structure. Remember to add the post type name to the file ex. archive-post_type.php. From there you may want to customize further...


wenn also der Path Key im Modul Produktartikel "produkte" ist, dann wäre der Name der Template Datei: single-produkt.php.

Hier dann einfach via

Code: Alles auswählen

<?php get_sidebar('shop'); ?>
die Sidebar einbinden.

Das ist dann auch eine "saubere" Lösung.