Получить идентификатор и слизень из объекта таксономии


У меня есть настраиваемое поле для выбора категории (пользовательская таксономия), а затем я выведу список всех ее дочерних категорий. Это прекрасно работает, когда я возвращаю пользовательское поле как "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>

Кто-нибудь может мне помочь, пожалуйста? Большое вам спасибо!

Author: fuxia, 2013-04-12

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() принимает два аргумента: термин и таксономию. Если вы сохраняете объект термина в поле и передаете его в качестве первого аргумента, то второй аргумент является необязательным. Если вы передадите идентификатор, как это было сделано выше, то вам придется передать имя таксономии.

 1
Author: mrwweb, 2013-04-12 15:23:36