Anmelden oder neues Benutzerkonto anlegen.

 

Doku » Template Tags/in category


Inhaltsverzeichnis

[bearbeiten] Beschreibung

Wenn sich ein Beitrag in der entsprechenden Kategorie befindet wird ein bestimmter Wert ausgegeben. Dieser Tag muss sich innerhalb vom Loop befinden, beachtet jedoch den Hinweis weiter unten.

[bearbeiten] Verwendung

Angenommen du möchtest etwas PHP oder HTML in einem Beitrag ausführen der in einer bestimmten Kategorie abgelegt wurde. Wir legen die Kategorie anhand der ID fest. Diese ist in unserem Beispiel als 'kategorie_id' bezeichnet.

<?php if ( in_category('kategorie_id') ): ?>
  \\ Hier kommt dann Kategorie spezifisches PHP/HTML hin.
<?php endif; ?>

[bearbeiten] Beispiele

[bearbeiten] Kategorie spezifischen Text anzeigen

Zeige <span class="petra-kommt-um-5">Petra kommt um 5 zum Essen</span> in jedem Eintrag der zur Kategorie mit der ID 5 gehört. Ist der Beitrag nicht in Kategorie 5, so wird folgendes angezeigt: <span class="petra-steht-im-stau">Petra kommt später</span>.

<?php if ( in_category(5) ) {
echo '<span class="petra-kommt-um-5">Petra kommt um 5 zum Essen</span>';
} else {
echo '<span class="petra-steht-im-stau">Petra kommt später</span>';
}
?>

Es ist wie eine einfache WENN-Funktion in Excel. Wenn Petra um 5 kommt bzw. der Beitrag in Kategorie 5 abgelegt wurde, werden warme Nudeln serviert bzw. der entsprechende Text wird angezeigt. Steht Petra im Stau bzw. der Beitrag ist nicht in Kategorie 5, sind die Nudeln kalt bzw. es wird ein anderer Text angezeigt.

[bearbeiten] Außerhalb des Loops benutzen

Normalerweise muss dieser Tag innerhalb vom Loop benutzt werden, weil die Variable ($post) einen Wert ausführt und diesen Wert nur im Loop ausführen kann. Du kannst die Variable allerdings auch 'manuell' zuweisen und den Tag außerhalb vom Loop problemlos verwenden.

Als Beispiel, nehmen wir an du möchtest eine single.php Template Datei in deinem Theme benutzen, die - abhängig von der jeweiligen Kategorie in dem sich der Beitrag befindet - eine völlig andere Seite darstellt. Es ist nicht sinnvoll, wenn wir in diesem Fall innerhalb des Loops in_category aufrufen. Benutze also Folgendes als single.php:

<?php
 $post = $wp_query->post;
 if ( in_category('17') ) {
 include(TEMPLATEPATH . '/single2.php');
 } else {
 include(TEMPLATEPATH . '/single1.php');
 }
 ?>

So wird jeder Eintrag der sich in der Kategorie 17 befindet mit der single2.php angezeigt und alle Anderen in der single1.php.

[bearbeiten] Parameter

category_id 
(integer) Die Kategorie ID der jeweiligen Kategorie. Der Wert kann entweder als Integer oder als Zeichenkette eingetragen werden.
  • in_category(5)
  • in_category('5')

[bearbeiten] Plug-In Optionen

Vielleicht kommt jemand mal auf die Idee ein Plug-In zu basteln, welches das automatisch macht. Das Custom Post Templates Plugin erlaubt es Templates für einzelne Beiträge zu erstellen. Es zeigt auch ein Beispiel wie man ein entsprechendes Template verwendet um alle Beiträge aus einer gewissen Kategorie diesem Template zuzuweisen; nicht nur ein einzelner Beitrag. Jenes Beispiel ist im Plug-In kommentiert, kann aber ohne weiteres auskommentiert werden und steht damit in vollem Umfang zur Verfügung.

[bearbeiten] Ähnliches

the_category the_category_rss the_category_ID the_category_head single_cat_title category_description dropdown_cats list_cats wp_list_cats in_category get_category_parents get_the_category




Original Dokument: http://codex.wordpress.org/Template_Tags/wp_list_cats



Zurück zum Template Tags Verzeichnis