WordPress-Kategorien von der Anzeige ausschliessen
Die Auswahl der Posts, die auf der Startseite in der animierten Bild-Vorschau oder in der darunter platzierten Featured-Vorschau angezeigt werden, erfolgt über spezielle dafür angelegte Kategorien. Dies wäre auch über Tags möglich, was jedoch das Related-Posts-Plugin durcheinander bringen würde. Diese Kategorien möchte ich aber natürlich nirgends angezeigt bekommen, da sie ja nicht der inhaltlichen Ordnung dienen, sondern von rein technischer Notwendigkeit sind.
Für das Widget, welches in der Sidebar die Kategorien anzeigt geht das recht einfach. In der widgets/tabs.php die Anzeige der Kategorien suchen und die Liste der Parameter um ein exclude-Statement, gefolgt von der Liste der IDs der zu exkludierenden Kategorien ergänzen. Bei mir sieht das dann so aus:
<?php case __('Categories','options') : ?>
<ul class="categories">
<?php wp_list_categories('use_desc_for_title=0&orderby=name&hierarchical=0&title_li=&exclude=177,179'); ?>
</ul>
<?php break; ?>
Die Kategorien jedes Posts werden jedoch auch in der Vollansicht zwischen Text und Kommentarfeld angezeigt. Auch hier sollen die technischen Kategorien nicht sichtbar sein. Die Kategorien eines Posts erhält man über die Funktion the_category(), welche keinen exclude-Parameter kennt. Hier ist also etwas mehr Code notwendig. Zunächst werden die auszuschliessenden Kategorien in ein Array geschrieben. Jede Kategorie wird dann mit diesem Array verglichen, und nur bei Nichtvorhandensein in die Liste der Kategorien geschrieben. Diese Liste wird dann schliesslich statt the_category() ausgegeben:
<div class="post-meta-data">
<?php
//exclude these from displaying
$exclude = array("Feature", "Features Gallery");
//set up an empty categorystring
$categorystring = '';
//loop through the categories for this post
foreach((get_the_category()) as $category)
{
//if not in the exclude array
if (!in_array($category->cat_name, $exclude))
{
//add category with link to categorystring
$categorystring .= '<a href="'.get_bloginfo(url).get_option('category_base').'/'.$category->slug.'">'.$category->name.'</a>, ';
}
}
?>
<p>
<!--
<span class="categories"><?php _e('Categories: ','options'); ?> <?php the_category(', '); ?></span>
-->
<span class="categories"><?php _e('Categories: ','options'); ?> <?php echo substr($categorystring, 0, strrpos($categorystring, ',')); ?></span>
<br />
<span class="tags"><?php _e('Tags: ','options'); ?> <?php the_tags('', ', ', ''); ?></span>
</p>
</div>
wo finde ich denn diese tabs.php?
Hallo Alex,
die gibt es in meinem Theme, gemeint sind die Tabs im zweiten Widget von oben. Je nach Theme und wo du das ändern willst, musst du bei dir in der entsprechenden Datei suchen. Was willst du denn genau machen?