Описание
Генерирует ссылку на архив раздела таксономии (аналогично ссылки на категорию).
Функция возвращает постоянную ссылку на страницу определенного элемента (термина) таксономии.
Функция может пригодится, когда на сайте создана произвольная таксономия и нужно получить ссылку на какой-либо раздел этой произвольной таксономии.
get_term_link() используется в: get_category_link().
Использование
<?php get_term_link( $term, $taxonomy ); ?>
Параметры
По умолчанию: нет
По умолчанию: нет
Примеры
1. Выведем на экран ссылку на архивную страницу элемента таксономии. 5 - ID элемента, tax_name - название таксономии.
<?php $term_id = 5; $term_link = get_term_link($term_id, 'tax_name'); echo "<a href='". $term_link ."'>ссылка на раздел с ID ". $term_id ."</a>"; ?>
1.2. Предположим что $term_id уже известна и передается она в виде строки, тогда его нужно преобразовать в число иначе функция будет интерпретировать его как имя(slug) элемента таксономии
<?php $term_id = '5'; $term_link = get_term_link( (int)$term_id, 'tax_name' ); echo "<a href='". $term_link ."'>ссылка на раздел с ID ". $term_id ."</a>"; ?>
2. Пример вывода ссылки по названию элемента таксономии:
<?php $term_slug = 'raznoe'; //передавать нужно альтернативное имя (slug) $term_link = get_term_link($term_slug, 'tax_name'); echo "<a href='". $term_link ."'>ссылка на раздел ". $term_slug ."</a>"; ?>
На заметку
- Использует apply_filters(), которая вызывает фильтр term_link.
get_term_link()
из файла: /wp-includes/taxonomy.php WP 3.3.2function get_term_link( $term, $taxonomy = '') {
global $wp_rewrite;
if ( !is_object($term) ) {
if ( is_int($term) ) {
$term = &get_term($term, $taxonomy);
} else {
$term = &get_term_by('slug', $term, $taxonomy);
}
}
if ( !is_object($term) )
$term = new WP_Error('invalid_term', __('Empty Term'));
if ( is_wp_error( $term ) )
return $term;
$taxonomy = $term->taxonomy;
$termlink = $wp_rewrite->get_extra_permastruct($taxonomy);
$slug = $term->slug;
$t = get_taxonomy($taxonomy);
if ( empty($termlink) ) {
if ( 'category' == $taxonomy )
$termlink = '?cat=' . $term->term_id;
elseif ( $t->query_var )
$termlink = "?$t->query_var=$slug";
else
$termlink = "?taxonomy=$taxonomy&term=$slug";
$termlink = home_url($termlink);
} else {
if ( $t->rewrite['hierarchical'] ) {
$hierarchical_slugs = array();
$ancestors = get_ancestors($term->term_id, $taxonomy);
foreach ( (array)$ancestors as $ancestor ) {
$ancestor_term = get_term($ancestor, $taxonomy);
$hierarchical_slugs[] = $ancestor_term->slug;
}
$hierarchical_slugs = array_reverse($hierarchical_slugs);
$hierarchical_slugs[] = $slug;
$termlink = str_replace("%$taxonomy%", implode('/', $hierarchical_slugs), $termlink);
} else {
$termlink = str_replace("%$taxonomy%", $slug, $termlink);
}
$termlink = home_url( user_trailingslashit($termlink, 'category') );
}
// Back Compat filters.
if ( 'post_tag' == $taxonomy )
$termlink = apply_filters( 'tag_link', $termlink, $term->term_id );
elseif ( 'category' == $taxonomy )
$termlink = apply_filters( 'category_link', $termlink, $term->term_id );
return apply_filters('term_link', $termlink, $term, $taxonomy);
}Связанные Функции
- get_permalink() view
- next_image_link() view
- get_term() view
- get_the_terms() view
- wp_set_object_terms() view
- the_terms() view
- wp_get_shortlink() view
- wp_delete_term() view
Ещё из раздела
Смотрите также: Функции WordPress и Теги Шаблона.