Возвращает ссылку на страницу архива того или иного элемента таксономии.
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>'; }
Короче говоря, по возможности лучше использовать в качестве первого параметра ярлык или объект.
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.
Интересный момент.
А как, например, изменить ЧПУ для определенной рубрики?
Например, есть рубрика Статьи. как для ее записей добавлять в урл префикс articles_ ???)
Вам важен именно автоматизм или можете просто к этим постам вручную добавлять?
Безусловно, интересуют способы автоматизировать этот процесс.
Можно изменить это через запрос в базу и потом проставить редиректы, также думаю можно через WP_Rewrite (про него скоро выйдет пост).
Миша, привет.
Вывел кол-во постов с указанной таксономией
добавил функцию для расчета окончаний (getTerm) в зависимости от кол-ва.
но если я ее добавлю так, как показано ниже, то отображается правильно, но линк пропадает:
или:
В последнем случае кол-во с линком а само слово нет, а надо, чтобы была целая фраза с линком.
Может есть другой вариант добавить эти окончания?
Привет!
В этом коде всё в порядке, в функции
getTerm()
очевидно нет. Предполагаю она выводит значение, вместо того, чтобы его возвращать.Видимо, ты прав.
Вот код:
конечно прав
:)
вместо
echo
ставьreturn
красавчик :)
работает.
Добрый день, а как исправить PHP Deprecated: Функция category_link с версии 2.5.0 считается устаревшей! Используйте term_link...
Добрый день!
Можете попробовать использовать функцию
term_link()
...