获取分类法单一名称,而不是$TATERIONY查询中的分类法段塞

时间:2021-05-18 作者:user2882154

我试图在for each循环中回显分类法名称,而不是此行的类别slug:

<div class="title"><?php echo $taxonomy; ?></div>
我试过:

<div class="title"><?php echo $taxonomy->name; ?></div>
但我得到一个错误:“quot;正在尝试获取非对象的属性“name”;

这是我的代码:

<?php
$custom_post_type = get_queried_object();
$custom_post_type_name = $custom_post_type->name;
$taxonomies = get_object_taxonomies($custom_post_type_name);
?>

<?php foreach ($taxonomies as $taxonomy) : ?>

    <?php $categories = get_terms(array(
        \'orderby\' => \'name\',
        \'taxonomy\' => $taxonomy,
        \'order\'   => \'ASC\',
        \'hide_empty\' => 1,

    )); ?>

    <div id="filters-<?php echo $taxonomy; ?>" class="filter-group">

        <div class="title"><?php echo $taxonomy; ?></div>

        <ul class="filters-select" data-filter-group>

            <?php foreach ($categories as $category) : ?>
                
                <li>
                    <label><?php echo $category->name; ?></label>
                    <input type="checkbox" value=".<?php echo $category->slug; ?>" />
                </li>
            <?php endforeach; ?>

        </ul>

    </div>

<?php endforeach; ?>
我错过什么了吗?

1 个回复
SO网友:Sally CJ

get_object_taxonomies() 默认情况下,返回分类名称列表,如categorypost_tag. 如果希望函数返回分类法对象,请将第二个参数设置为objects:

$taxonomies = get_object_taxonomies($custom_post_type_name, \'objects\');
然后改变你的foreach () 代码至foreach ($taxonomies as $taxonomy => $tax_object), 然后使用$tax_object->labels->singular_name 访问特定分类法的单数标签。

相关推荐

Taxonomy rewrite question

我有定制的餐饮、住宿和活动职位类型。这些自定义帖子类型中的每一种都使用一种称为region的自定义分类法。例如,如果我有一个名为“闹市区”的地区,我希望能够通过转到域来显示该地区的用餐选项。com/市中心/餐饮。或者通过进入域名展示该地区的酒店。通讯/市中心/住宿。所以,基本上,我喜欢创建一个重写规则来给出结构域。com/tax term/cpt slug显示已选择该税项的cpt的所有帖子。有什么办法吗?