function theme_link

Returns HTML for a link.

All Drupal code that outputs a link should call the l() function. That function performs some initial preprocessing, and then, if necessary, calls theme('link') for rendering the anchor tag.

To optimize performance for sites that don't need custom theming of links, the l() function includes an inline copy of this function, and uses that copy if none of the enabled modules or the active theme implement any preprocess or process functions or override this theme implementation.

Parameters

array $variables: An associative array containing the keys:

  • text: The text of the link.
  • path: The internal path or external URL being linked to. It is used as the $path parameter of the url() function.
  • options: (optional) An array that defaults to empty, but can contain:
    • attributes: Can contain optional attributes:

      • class: must be declared in an array. Example: 'class' => array('class_name1','class_name2').
      • title: must be a string. Example: 'title' => 'Example title'
      • Others are more flexible as long as they work with drupal_attributes($variables['options']['attributes]).
    • html: Boolean flag that tells whether text contains HTML or plain text. If set to TRUE, the text value will not be sanitized so the calling function must ensure that it already contains safe HTML.

The elements $variables['options']['attributes'] and $variables['options']['html'] are used in this function similarly to the way that $options['attributes'] and $options['html'] are used in l(). The link itself is built by the url() function, which takes $variables['path'] and $variables['options'] as arguments.

See also

l()

url()

Related topics

1 string reference to 'theme_link'
l in includes/common.inc
Formats an internal or external URL link as an HTML anchor tag.
1 theme call to theme_link()
l in includes/common.inc
Formats an internal or external URL link as an HTML anchor tag.

File

includes/theme.inc, line 1738

Code

function theme_link($variables) {
    return '<a href="' . check_plain(url($variables['path'], $variables['options'])) . '"' . drupal_attributes($variables['options']['attributes']) . '>' . ($variables['options']['html'] ? $variables['text'] : check_plain($variables['text'])) . '</a>';
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.