在Wordpress中,标签会按照类别显示。不过Wordpress就两种标签:文章分类和标签。
在Drupal中,你可以创建不同类型的标签,如:文章分类,文章地点,涉及人物,天气等等类型(Vocabulary)。但是默认时会将这些标签(Taxonomy Terms)显示在一起,我们可以用下面的代码将这些标签按类别分开显示:
<?php function yourthemename_print_terms($node, $vid = NULL, $ordered_list = TRUE) { $vocabularies = taxonomy_get_vocabularies(); if ($ordered_list) $output .= '<ul>'; //checks to see if you want an ordered list if ($vid) { //checks to see if you've passed a number with vid, prints just that vid $output = '<div class="tags-'. $vid . '">'; foreach($vocabularies as $vocabulary) { if ($vocabulary->vid == $vid) { $terms = taxonomy_node_get_terms_by_vocabulary($node, $vocabulary->vid); if ($terms) { $links = array(); $output .= '<span class="only-vocabulary-'. $vocabulary->vid . '">'; if ($ordered_list) $output .= '<li class="vocabulary-'. $vocabulary->vid . '">' . $vocabulary->name . ': '; foreach ($terms as $term) { $links[] = '<span class="term-' . $term->tid . '">' . l($term->name, taxonomy_term_path($term), array('rel' => 'tag', 'title' => strip_tags($term->description))) .'</span>'; } $output .= implode(', ', $links); if ($ordered_list) $output .= '</li>'; $output .= '</span>'; } } } } else { $output = '<div class="tags">'; foreach($vocabularies as $vocabulary) { if ($vocabularies) { $terms = taxonomy_node_get_terms_by_vocabulary($node, $vocabulary->vid); if ($terms) { $links = array(); $output .= '<ul class="vocabulary-'. $vocabulary->vid . '">'; if ($ordered_list) $output .= '<li class="vocabulary-'. $vocabulary->vid . '">' . $vocabulary->name . ': '; foreach ($terms as $term) { $links[] = '<span class="term-' . $term->tid . '">' . l($term->name, taxonomy_term_path($term), array('rel' => 'tag', 'title' => strip_tags($term->description))) .'</span>'; } $output .= implode(', ', $links); if ($ordered_list) $output .= '</li>'; $output .= '</ul>'; } } } } if ($ordered_list) $output .= '</ul>'; $output .= '</div>'; return $output; } ?>
<?php if ($terms && !$teaser) { print yourthemename_print_terms($node, $vid = NULL, $unordered_list = TRUE);} ?> <?php if ($terms && $teaser) { print yourthemename_print_terms($node, $vid = NULL, $unordered_list = FALSE);} ?>