Get_Terms()复制自定义分类的第一个术语

时间:2020-11-10 作者:Farzad

我创建了一个函数来显示我的自定义分类(“市场”)术语。但问题是,这会两次输出第一个分类术语。以下是我的功能:

    function related_markets()
    {
        if (\'news\' === get_post_type()) {
            $terms = get_terms(array(
                \'taxonomy\' => \'market\',
                \'hide_empty\' => false,
            ));
            foreach ($terms as $term) {
                $term_list .= \'<a class="related-market btn btn-outline-secondary" href="\' . esc_url(get_term_link($term)) . \'">\' . $term->name . \'</a>\';
                echo $term_list;
            }
        } elseif (\'analysis\' === get_post_type()) {
            $terms = get_terms(array(
                \'taxonomy\' => \'market\',
                \'hide_empty\' => false,
            ));
            foreach ($terms as $term) {
                $term_list .= \'<a class="related-market btn btn-outline-secondary" href="\' . esc_url(get_term_link($term)) . \'">\' . $term->name . \'</a>\';
                echo $term_list;
            }
        }
    }
endif;

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

我想你们想显示类别链接列表,对吗?但您是for each循环中的echo列表。你必须把它写在循环之外。

foreach ($terms as $term) {
            $term_list .= \'<a class="related-market btn btn-outline-secondary" href="\' . esc_url(get_term_link($term)) . \'">\' . $term->name . \'</a>\';
        }
        echo $term_list;
也不要忘记初始化$术语列表“;函数中的第一个。:)