Функция get_term_link()
в WordPress используется для генерации постоянной ссылки на архивную страницу определённого элемента таксономии. Эта функция может быть полезна, когда необходимо получить ссылку на произвольную таксономию, например, категории или метки.
get_term_link( WP_Term|int|string $term, string $taxonomy = '' ): string|WP_Error
Параметры
- $term (обязательный): может быть объектом
WP_Term
, ID термина (число), или слагом (строка) термина, для которого будет получена ссылка. - $taxonomy (необязательный): название таксономии. По умолчанию — пустая строка.
Возвращаемое значение
Функция возвращает строку с URL архивной страницы термина на успех, или объект WP_Error
, если термина не существует.
Примечание
При передаче числовых значений в функцию убедитесь, что они приведены к типу integer. Если передать строку, которая выглядит как число, функция может интерпретировать её как слаг, что приведет к ошибке.
Пример 1: Получение ссылки на архивную страницу по ID термина
$term_id = 7; // ID термина
$term_link = get_term_link($term_id, 'tax_name'); // Замените 'tax_name' на название вашей таксономии
echo '<a href="'. esc_url($term_link) .'">Ссылка на раздел с ID '. $term_id .'</a>';
Пример 2: Преобразование ID термина из строки в число
$term_id = '7'; // ID термина в виде строки
$term_link = get_term_link((int) $term_id, 'tax_name'); // Приводим к типу integer
echo '<a href="'. esc_url($term_link) .'">Ссылка на раздел с ID '. $term_id .'</a>';
Пример 3: Получение ссылки по слагу термина
$term_slug = 'general'; // Слаг термина
$term_link = get_term_link($term_slug, 'tax_name'); // Замените 'tax_name' на название вашей таксономии
echo '<a href="'. esc_url($term_link) .'">Ссылка на раздел '. $term_slug .'</a>';
Пример 4: Генерация списка ссылок на термины таксономии
$terms = get_terms('species'); // Получение всех терминов из таксономии 'species'
if (!is_wp_error($terms) && !empty($terms)) {
echo '<ul>';
foreach ($terms as $term) {
$term_link = get_term_link($term); // Получение ссылки для каждого термина
if (is_wp_error($term_link)) {
continue; // Пропустить термин, если произошла ошибка
}
echo '<li><a href="'. esc_url($term_link) .'">'. esc_html($term->name) .'</a></li>';
}
echo '</ul>';
}
Пример с проверкой ошибок
$dr_terms = get_terms('your_term_name');
if (!is_wp_error($dr_terms) && !empty($dr_terms)) {
echo '<ul class="your-class-name">';
foreach ($dr_terms as $dr_term) {
echo '<li><a href="'. esc_url(get_term_link($dr_term->slug, 'your_term_name')) .'">'. esc_html($dr_term->name) .'</a></li>';
}
echo '</ul>';
}
Заключение
Функция get_term_link()
— мощный инструмент для работы с таксономиями в WordPress. Она позволяет легко генерировать ссылки на архивные страницы терминов и обеспечивает гибкость при работе с различными типами данных, такими как ID и слаги. Не забывайте обрабатывать возможные ошибки, чтобы избежать проблем в работе вашего сайта.