2012-04-11 4 views
1

Через ряд специфических требований, я ловлю себя на необходимость ссылаться на категорию таксономии, используя свой термин идентификатор ...ссылки на таксономию по идентификатору

У меня это - который выводит ссылку на все таксономии - я хочу изменить его, чтобы он отображал только ссылку на таксономию с термином «id», динамически вытаскиваемым из настраиваемого поля, которое я использую.

$taxonomy = 'event-categories'; 
$terms = get_terms($taxonomy); 
if ($terms) { 
foreach($terms as $term) { 
echo '<li><a href="http:/mysite.com/events/categories/project-events/' . $term->slug . '">' . $term->name .'</a></li>'; 
} 
}; 

essentiall мне нужно "link_to_taxonomy_category (х)", где х = term_id

Благодаря

ответ

7

Функция вы ищете get_term_link. Он принимает термин объект, идентификатор или slug и имя таксономии и возвращает URL-адрес термина целевой страницы.

В качестве побочного примечания жесткого кодирования ссылка, как у вас в приведенном выше примере, является хрупкой - всегда держите свой код как можно более переносимым. Если сайт перемещен в другой домен, эта ссылка будет ломаться. WordPress имеет несколько функций, которые динамически генерируют ссылки на основе текущей среды установки. get_term_link - один пример.

Codex От:

$terms = get_terms('species'); 
echo '<ul>'; 
foreach ($terms as $term) { 
    echo '<li><a href="'.get_term_link($term->slug, 'species').'">'.$term->name.'</a></li>'; 
} 
echo '</ul>'; 
+0

Привет, спасибо - я действительно пробовал это, но не мог заставить его работать, теперь я снова пойду. Жесткий код просто для ясности в вопросе ... – JorgeLuisBorges

+0

да - не могу понять, как это использовать - попробовал '$ terms = get_terms ('event-categories'); echo '

'; 'и получил следующую ошибку:« Catchable fatal error: Object класса WP_Error не может быть преобразован в строку в ... » – JorgeLuisBorges

+1

Второй аргумент для' get_term_link' должен быть именем таксономии («категории событий» в этом случае). Он вернет объект класса WP_Error, если термин или таксономия не существует. Вы можете поймать значение сообщения об ошибке, сохранив его в переменной (то есть $ term_link) и проверив ее перед echo'ing: 'if (is_wp_error ($ term_link)) echo $ term_link-> get_error_message();' – gradyetc

1

Если у вас есть одного term_id например: 10, пользовательские таксономии series, то вы можете использовать следующий код, чтобы получить термин таксономии ссылку.

примечание: измените 10 на свою переменную для term_id и 'series' для вашей таксономии.

$term = get_term(10, 'series'); 
$term_link = get_term_link($term); 
echo '<a href="' . $term_link . '">View All</a>'; 
+0

Это только показывает категорию по умолчанию, а не обычную таксономию. –

+0

во втором параметре get_term() передают имя таксономии. – talentedaamer

Смежные вопросы