it-swarm.com.de

Beiträge in mehreren Kategorien verschiedene single.php

Ich zerschmettere meinen Kopf gegen einen Code. Hier ist die Situation: Ich habe einen Beitrag in 3 verschiedenen Kategorien, dieser Beitrag muss in "Kategorie 1" mit der single1.php, in "Kategorie 2" mit single2.php und in "Kategorie 3" mit single3.php sichtbar sein .

Offensichtlich haben die 3 single.php-Seiten eine andere Vorlage. Zum Beispiel zeigt die single1.php Bilder und the_content (); single2.php zeigt Bilder und Kommentare; single3.php zeigt die Reviews.

Ich weiß, dass ich in single.php das if/else benutzen kann, aber ich kann nicht herausfinden, ob derselbe Beitrag in 3 verschiedenen Kategorien ist.

Irgendeine Hilfe bitte?

4
Mark

Anstatt es kategoriespezifisch zu gestalten, können Sie auch Postformate und verschiedene Inhaltsvorlagen verwenden. In single.php kannst du schreiben

<?php get_template_part( 'content', get_post_format() ); ?>

Dann erstellen Sie verschiedene Postformate

add_theme_support( 'post-formats', array( 'withpictures', 'withcomments' ) );

Dann erstelle verschiedene Post-Templates content-withpictures.php, content-withcomments.php

Bei der Erstellung von Inhalten bestimmt das gewählte Postformat die Vorlage.

2
mirage

Sie können den Filter-Hook für 'single_template' verwenden. Erstelle single-cat1.php, single-cat2.php und single-cat3.php (cat1, cat2 und cat3 sind die Kategorienamen, die durch deine Kategorienamen ersetzt werden sollten)

function template_change( $template ){
    if( is_single() && in_category('cat1') ){
        $templates = array("single-cat1.php");
    } elseif( is_single() && in_category('cat2') ){
        $templates = array("single-cat2.php");
    } elseif( is_single() && in_category('cat3') ){
        $templates = array("single-cat3.php");
    }
    $template = locate_template( $templates );
    return $template;
}
add_filter( 'single_template', 'template_change' ); //'template_include'/'single_template'
3

Sie können es in der header.php ändern, wenn die Vorlage single-cat1.php verwendet und die header.php das Stylesheet ändern muss. Beispiel:

<link rel="stylesheet" type="text/css" href="<?php bloginfo('template_url'); ?>/ca1.css">
0
mikhoi