Taxonomie Terme nach Vokabular aufteilen

Im Theme in der Datei node.tpl.php wird man irgendwo folgendem Snippet begegnen:

Dadurch werden alle Terme, welche mit dem Node verbunden sind aufgelistet (unabhängig vom Vokabular)! Wenn man also z.B.  verschiedene Vokabulare hat, so werden die ganzen Terms einfach in einer Liste aufgelistet und man kann nicht wissen, zu welchem Vokabular der jeweilige Term gehört. In vielen Fällen mag das ok sein, aber in vielen Fällen auch nicht.

Der folgende Snippet muss in die template.php rein:

nid; $vocabularies = taxonomy_get_vocabularies();
$output = '

    ';
    foreach($vocabularies as $vocabulary) {
    if ($vocabularies) {
    $terms = taxonomy_node_get_terms_by_vocabulary($node, $vocabulary->vid);
    if ($terms) {
    $links = array();
    $output .= '
  • ' . $vocabulary->name . ': ';
    foreach ($terms as $term) {
    $links[] = l($term->name, taxonomy_term_path($term), array('rel' => 'tag', 'title' => strip_tags($term->description)));
    }
    $output .= implode(', ', $links);
    $output .= '
  • ';
    }
    }
    }
    $output .= '

';
return $output;
}
?>

Und das wäre es dann auch schon… 😉 Einfach myTheme durch das jeweilige Theme ersetzen. Zudem muss der Cache nochmals neu geleert werden (unter Performance ganz zuunterst). Wenn man sich jetzt den Node nochmals anschauen, wird man erfreut sein 😉