Описание
Получает все данные об элементе таксономии (term) из Базы Данных, по переданному ID этого элемента.
get_term идентична функции get_category(), с той лишь разницей, что в этой функции мы можем указать название таксономии с которой будет работать функция.
Функция имеет два хука, первый - get_term, который срабатывает всегда и второй - get_$taxonomy, который срабатывает для определенного элемента таксономии. Оба хука в качестве параметров получают объект (массив) элемента и название таксономии. Оба хука должны вернуть объект (массив) элемента.
Второй хук (term_$taxonomy) динамический, т.е. в нем $taxonomy должно быть заменено на название таксономии. Например для категорий, название таксономии у которых "category", название фильтра будет таким: "get_category". Может пригодится для произвольных таксономий.
get_term() используется в: get_category().
Использование
<?php get_term( $term, $taxonomy, $output, $filter ) ?>
Параметры
По умолчанию: нет
По умолчанию: нет
- OBJECT - объект;
- ARRAY_A - ассоциативный массив;
- ARRAY_N - индексированный массив.
По умолчанию: OBJECT
По умолчанию: 'raw'
Примеры
1. Получим данные об элементе таксономии из БД:
$term_id = 65; $taxonomy = 'my_taxonomy'; $term = get_term( $term_id, $taxonomy ); // Теперь, переменная содержит данные о элементе таксономии. // Альтернативное название элемента находится здесь $slug = $term->slug; // Название элемента $name = $term->name; // А так мы получим описание элемента таксономии $desc = $term->description;
На заметку
- Использует: sanitize_term(). Чистит элемент на основе правил фильтра указанного в параметре $filter
get_term()
из файла: /wp-includes/taxonomy.php WP 3.3.2function &get_term($term, $taxonomy, $output = OBJECT, $filter = 'raw') {
global $wpdb;
$null = null;
if ( empty($term) ) {
$error = new WP_Error('invalid_term', __('Empty Term'));
return $error;
}
if ( ! taxonomy_exists($taxonomy) ) {
$error = new WP_Error('invalid_taxonomy', __('Invalid Taxonomy'));
return $error;
}
if ( is_object($term) && empty($term->filter) ) {
wp_cache_add($term->term_id, $term, $taxonomy);
$_term = $term;
} else {
if ( is_object($term) )
$term = $term->term_id;
if ( !$term = (int) $term )
return $null;
if ( ! $_term = wp_cache_get($term, $taxonomy) ) {
$_term = $wpdb->get_row( $wpdb->prepare( "SELECT t.*, tt.* FROM $wpdb->terms AS t INNER JOIN $wpdb->term_taxonomy AS tt ON t.term_id = tt.term_id WHERE tt.taxonomy = %s AND t.term_id = %d LIMIT 1", $taxonomy, $term) );
if ( ! $_term )
return $null;
wp_cache_add($term, $_term, $taxonomy);
}
}
$_term = apply_filters('get_term', $_term, $taxonomy);
$_term = apply_filters("get_$taxonomy", $_term, $taxonomy);
$_term = sanitize_term($_term, $taxonomy, $filter);
if ( $output == OBJECT ) {
return $_term;
} elseif ( $output == ARRAY_A ) {
$__term = get_object_vars($_term);
return $__term;
} elseif ( $output == ARRAY_N ) {
$__term = array_values(get_object_vars($_term));
return $__term;
} else {
return $_term;
}
}Связанные Функции
Ещё из раздела
Смотрите также: Функции WordPress и Теги Шаблона.
Помогите,пожалуйста, никак не могу найти ответ
Функция:
<?php // Get Portfolio Categories $taxonomy = 'animal-type'; $categories = get_terms('$taxonomy'); // List the Portfolio Categories foreach($categories as $category) { echo 'slug).'"><a>name.'" title="'.$category->name.' projects">'.$category->name.'</a> '; } ?>выводит весь список рубрик с таксономией animal-type . Как вывести только одну рубрику с таксономией animal-type, ID рубрики = 78 ?
Если уж нужно название одной рубрики, при этом получать его нужно не динамически, т.е. заранее известной рубрики. Не проще просто через HTML написать руками ссылку, и все?