Получить идентификатор и слизень из объекта таксономии
У меня есть настраиваемое поле для выбора категории (пользовательская таксономия), а затем я выведу список всех ее дочерних категорий. Это прекрасно работает, когда я возвращаю пользовательское поле как "term_id".
ОДНАКО. Я хотел бы также получить слиток из этой выбранной категории (родительской), чтобы я мог перейти на страницу ее категории (я не думаю, что смогу перейти на нее с идентификатором). Поэтому я подумал, что, возможно, мне следует вместо этого вернуть настраиваемое поле в качестве объекта. Вот что это свалки:
stdClass Object ( [term_id] => 122 [name] => Quick Release Watch Bands [slug] => fits-all [term_group] => 0 [avhec_term_order] => 0 [term_taxonomy_id] => 122 [taxonomy] => product_cat [description] => Watch bands in many colors [parent] => 0 [count] => 293 [meta_id] => 1 [woocommerce_term_id] => 122 [meta_key] => order [meta_value] => 22 )
Знаете ли вы, как я могу извлечь из этого как идентификатор (122), так и пулю (подходит всем)? Вот мой код на данный момент. Настраиваемое поле называется "выбранная категория".
<?php $catid = get_sub_field('selected_category');
$args = array(
'taxonomy' => 'product_cat',
'orderby' => 'name',
'show_count' => 0,
'pad_counts' => 0,
'hierarchical' => 1,
'title_li' => '',
'depth' => 1,
'child_of' => $catid
);
?>
<h4><a href="URL.COM/NEED-CATEGORY SLUG"><?php the_sub_field('title'); ?></a></h4>
<ul class="subcats">
<?php wp_list_categories( $args ); ?>
</ul>
Кто-нибудь может мне помочь, пожалуйста? Большое вам спасибо!
1 answers
Похоже, вы ищете get_term_link()
функция.
Ваш код будет выглядеть примерно так:
<?php
$catid = get_sub_field('selected_category');
$term_link = get_term_link( intval( $catid ), 'product_cat' );
?>
<h4><a href="<?php echo esc_url( $term_link ); ?>"><?php the_sub_field('title'); ?></a></h4>
Как вы можете видеть, get_term_link()
принимает два аргумента: термин и таксономию. Если вы сохраняете объект термина в поле и передаете его в качестве первого аргумента, то второй аргумент является необязательным. Если вы передадите идентификатор, как это было сделано выше, то вам придется передать имя таксономии.