Возвращает ссылку на страницу архива того или иного элемента таксономии.
Использование
get_term_link( $term, $taxonomy ); |
Параметры
$term
(объект|целое|строка) (обязательно) — объект/ID/ярлык элемента таксономии.
$taxonomy
(строка) (обязательно) — ярлык самой таксономии, например post_tag, movies и т.д. Не обязателен, если в первом параметре указан объект.
Функция возвращает URL элемента таксономии в виде строки.
Примеры использования
get_term_link бывает удобно использовать в цикле после функции get_terms (более подробно о параметрах функции можете почитать, перейдя по ссылке), например вот два примера вывода ссылки без функции.
С включенными ЧПУ:
echo site_url() . '/movies/' . $term->slug; |
Минус этого примера в том, что если на сайте отключить ЧПУ, то все ваши ссылки полетят.
Без ЧПУ:
echo site_url() . '/?movies=' . $term->slug; |
Более надежный вариант:
echo get_term_link($term->slug, 'movies'); |
Тут кстати в качестве параметра задается ярлык элемента таксономии.
Полный пример:
$terms = get_terms('movies'); foreach ($terms as $term) { echo '<a href="' . get_term_link($term->slug, $term->taxonomy) . '">' . $term->name . '</a>'; } |
Самый оптимальный на мой взгляд вариант использования в цикле:
$terms = get_terms('movies'); foreach ($terms as $term) { echo '<a href="' . get_term_link($term) . '">' . $term->name . '</a>'; } |
Если задаете в качестве значения первого параметра ID элемента, для начала убедитесь, что это целое число!
/* * при добавлении intval() выскакивает ошибка: * Catchable fatal error: Object of class WP_Error could not be converted to string * поэтому, помимо всего прочего, заключаем результат в функцию is_string() */ $terms = get_terms('movies'); foreach ($terms as $term) { echo '<a href="' . is_string(get_term_link(inval($term->term_ID)), $term->taxonomy) . '">' . $term->name . '</a>'; } |
Короче говоря, по возможности лучше использовать в качестве первого параметра ярлык или объект.
Источник: misha.blog