我创建了一个称为“新闻编辑室类别”的自定义分类法,并能够使用一些数组值、条件语句和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>
但是,无论在页面编辑器中选择哪个术语,只有第一个术语才是唯一呈现的术语。如何获得比第一个术语更多的内容来显示?如有任何意见,将不胜感激。
最合适的回答,由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>\';
}