Für das Aussehen bzw. die Gestaltung der Einzelansicht von Artikel bzw. Beiträgen bei WordPress ist die single.php zuständig. Hier wird festgelegt welche Inhalte bzw. Elemente vorhanden sind. Möchte man die Artikel einer bestimmten Kategorie anders darstellen als andere, so kann man das ganze wie folgt lösen:

Zunächst einmal muss man sich eine Kopie der Original-single.php erstellen. Danach ersetzt man den Inhalt der single.php mit einer Abfrage. Dabei wird für die angegebenen Kategorien bestimmte welche Datei zuständig ist.

<?php $post = $wp_query->post;
if ( in_category('57') ) {
  include(TEMPLATEPATH . '/single_kategorie1.php');
} else if(in_category('56')) {
  include(TEMPLATEPATH . '/single_kategorie2.php');
} else if (in_category ('33')){
  include(TEMPLATEPATH . '/single_kategorie3.php');
}

else {
  include(TEMPLATEPATH . '/single_standard.php');
}
?>

Dabei greift man zum einen auf die ID der Kategorie zu, die ein bestimmtes Template bekommen soll. Man kann aber auch den Slug der Kategorie einfügen. Anschließend wird dann auf die entsprechende Template-Datei zugegriffen.

Handelt es sich um eine nicht aufgeführte Kategorie (else), dann soll auf die Standard-single.php zurückgegriffen werden. Dabei ist die single_standard.php die am Anfang erstellte Kopie der ursprünglichen single.php.

Das ganze ist im übrigen nicht zu Verwechseln mit der Methode bestimmten Artikel-/Beitragstypen (Stichwort: Formatvorlagen) eine eigene single.php zuzuweisen.

via CreativeDev

Diesen Blogartikel teilen:
Divi: Premium-Theme für WordPress
Werbung

Geschrieben von Thordis

Thordis Bonfranchi-Simović arbeitet seit Januar 2004 mit WordPress.

  1. Wäre es da nicht flexibler, get_template_part zu verwenden?

    (Die Dateien sollten in diesem Fall mit Bindestrichen benannt werden, also „single-kategorie1.php“)


    $slug = null;
    if (in_category('57')) {
    $slug = 'kategorie1';
    } elseif (in_category('56')) {
    $slug = 'kategorie2';
    } elseif (in_category('33')) {
    $slug = 'kategorie3';
    }
    get_template_part('single', $slug);

    Das hat den angenehmen Nebeneffekt, dass auf die „single.php“ zurückgegriffen wird, falls die ausgewählte Datei nicht (mehr) vorhanden sein sollte und funktioniert reibungslos mit Parent- und Child-Themes.

  2. […] erhalten: Wie kann man Templates für die Einzelansicht von Artikeln bzw. Beiträgen beeinflussen? Im folgenden Artikel wird eine Lösung […]

  3. […] werden und die dann eine eigene single.php bekommt. Wie das funktioniert ist in dem Beitrag WordPress-Artikel einer bestimmten Kategorie sollen ein eigenes Template erhalten […]

Kommentare sind geschlossen.