Get_term_link() - функция WordPress, описание и примеры
Опубликовано: 01.09.2018
Возвращает ссылку на страницу архива того или иного элемента таксономии .
Создание Wordpress Темы (Шаблона) с нуля - Урок 11 - Регистрация сайдбара. Виджет категории.
Использование
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>' ; } |
Короче говоря, по возможности лучше использовать в качестве первого параметра ярлык или объект.