Same name and namespace in other branches
  1. 4.6.x modules/taxonomy.module \taxonomy_link()
  2. 4.7.x modules/taxonomy.module \taxonomy_link()
  3. 6.x modules/taxonomy/taxonomy.module \taxonomy_link()

Implementation of hook_link().

This hook is extended with $type = 'taxonomy terms' to allow themes to print lists of terms associated with a node. Themes can print taxonomy links with:

if (module_exists('taxonomy')) { $terms = taxonomy_link('taxonomy terms', $node); print theme('links', $terms); }

3 calls to taxonomy_link()
chameleon_node in themes/chameleon/chameleon.theme
phptemplate_node in themes/engines/phptemplate/phptemplate.engine
Prepare the values passed to the theme_node function to be passed into a pluggable template engine.
theme_node in includes/theme.inc
Return a themed node.

File

modules/taxonomy/taxonomy.module, line 27
Enables the organization of content into categories.

Code

function taxonomy_link($type, $node = NULL) {
  if ($type == 'taxonomy terms' && $node != NULL) {
    $links = array();
    if (array_key_exists('taxonomy', $node)) {
      foreach ($node->taxonomy as $term) {
        $links['taxonomy_term_' . $term->tid] = array(
          'title' => $term->name,
          'href' => taxonomy_term_path($term),
          'attributes' => array(
            'rel' => 'tag',
            'title' => strip_tags($term->description),
          ),
        );
      }
    }

    // We call this hook again because some modules and themes call taxonomy_link('taxonomy terms') directly
    foreach (module_implements('link_alter') as $module) {
      $function = $module . '_link_alter';
      $function($node, $links);
    }
    return $links;
  }
}