从自定义分类和当前帖子获取术语

时间:2014-04-23 作者:Jana

我正在使用WooCommerce插件。我有三种产品(称为“套件”),每个套件包含几个项目。“项目”是一种自定义的帖子类型,通过关系字段链接到每个工具包。每个项目都附带一个自定义分类(“部门”)。各部门与产品(或“套件”)没有直接联系,除非通过物品。

当我展示产品时,我希望它们显示<ul> 循环遍历“部门”中的每个术语。那么在这个范围内<li>, 具有嵌套<ul> 它列出了在当前部门和当前产品中找到的每个项目。

我有一个循环,用于显示与每个产品相关的项目:

<a href="#details<?php the_ID(); ?>" class="details button" data-id = "<?php the_ID() ?>">Details</a>
<div class="items" id="details<?php the_ID(); ?>">  
<?php  $items = get_field(\'kit_items\');?>
<?php if( $items ): ?>
    <ul>
    <?php foreach( $items as $item ): ?>
        <?php $ident = $item->ID ?>
        <li>
            <a href="#overlay<?php echo $ident ?>" class="item item<?php echo $ident ?>" data-id ="<?php echo $ident ?>">
                <?php echo get_the_title( $item->ID ); ?>
            </a>
        </li>
    <?php endforeach; ?>
    </ul>
<?php endif; ?>
但我不知道如何查询自定义分类法,打印出术语,然后打印与部门和当前产品关联的项目。

1 个回复
最合适的回答,由SO网友:Remi 整理而成

您可以使用wp_get_object_terms

$terms = wp_get_object_terms($post->ID, \'departments\');
if(!empty($terms)){
  foreach($terms as $term){
    $exampleName = $term->name;
    $exampleSlugs[] = $term->slug;
  }
}
<小时>

Alternatively you can try to first ensure that the right taxonomy is being used:

$taxonomies = get_taxonomies();

echo \'<pre>\';
print_r($taxonomies);
echo \'</pre>\';
如果一切正常,您将看到一个包含所有分类法的数组,并且分类法“departments”存在于该数组中。

当您想要输出所有术语时,可以使用以下选项:

echo \'<pre>\';
$departments = get_terms( \'departments\', \'orderby=count&hide_empty=0\' );
print_r($departments);
echo \'</pre>\';
然后你可以随心所欲地使用它。

结束

相关推荐