我的自定义分类仅显示3个术语中的1个

时间:2018-04-19 作者:Chris Gatherer

我创建了一个称为“新闻编辑室类别”的自定义分类法,并能够使用一些数组值、条件语句和foreach循环来获取要显示的第一个术语:

<?php 
$args = array( \'public\' => true, \'_builtin\' => false, \'name\' => \'newsroom_categories\' );
$output = \'names\';
$operator = \'and\';
$taxonomies = get_taxonomies($args,$output,$operator); 

if  ($taxonomies) {
    foreach ($taxonomies  as $taxonomy ) {
        $terms = get_terms($taxonomy);
        $count = count($terms);

        if ( $count > 0 ){
            foreach ( $terms as $term ) {
                $termlinks = get_term_link($term,$taxonomy);                                                
            }
        }
    }
}?> 

<a href="<?php echo $termlinks;?>"><?php echo $term->name;?></a> 
但是,无论在页面编辑器中选择哪个术语,只有第一个术语才是唯一呈现的术语。如何获得比第一个术语更多的内容来显示?如有任何意见,将不胜感激。

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

在您的foreach 正在覆盖值的循环$termlinks 在输出前一个之前:

foreach ( $terms as $term ) {
    $termlinks = get_term_link($term,$taxonomy);                                                
}
代码所要做的就是确保$termlinks 设置为$terms 大堆

这也意味着当您最终输出$term->name 它将是最后一个$term 在循环中。

如果要输出每个术语,需要将输出移动到循环内部:

foreach ( $terms as $term ) {
    echo \'<a href="\' . $termlinks . \'">\' . $term->name . \'</a>\';                                                
}

结束

相关推荐

如何链接到详细信息页面(single.php?)在wp_loop中

我进行了如下wp\\U查询。这是其中的一部分。这是可行的。$args = .....; $query = new WP_Query($args); while($query->have_posts() ) : $query->the_post(); ?> <div class=\"each\"> <h4><?php the_title(); ?> &