我已经创建了一个函数来显示WordPress中自定义帖子类型的分类,但是我确定问题与PHP中的某些内容有关:
function portfolio_tax($x) {
$terms = get_terms($x);
$count = count($terms);
$commaCheck = 0;
foreach($terms as $term) {
echo $term->name;
if(!$commaCheck >= $count){echo ', ';}
$commaCheck++;
}
}
然后我使用<?php portfolio_tax('category');?>
(在同一页面上的2个不同位置将 category 替换为标记)将其显示在投资组合详细信息页面上。< / p>
似乎所有人都在使用max。 2项,但如果还有,,
会停止显示,如下所示:
代码
海滩,HelloMacro
(当 Hello &amp; Macro 之间应该有空格时)
答案 0 :(得分:2)
因为你的陈述。你首先检查!$ commaCheck,默认是什么,因为$ commaCheck是0,但是你提升它。所以这将是错误的。
删除!在$ commaCheck之前或将它放在()中,如下所示:!($commaCheck >= $count)
(我不知道你需要哪种逻辑。用“!”或不用。
答案 1 :(得分:1)
创建术语名称的地图。然后,您可以弹出最后一个元素,用逗号连接其余元素并重新连接弹出元素:
function portfolio_tax($x) {
$term_names = array_map(function($t){
return $t -> name;
}, get_terms($x));
$last = array_pop($term_names);
echo implode(',', $term_names) . ' ' . $last;
}
答案 2 :(得分:0)
if($ commaCheck&gt; = $ count){echo&#39;,&#39 ;;}尝试删除&#34;!&#34;
答案 3 :(得分:0)
另一种(更简单的)方法是在每个$ term(在第一个之后)而不是之后回复逗号。在这种情况下,你只需要一个反变量而不是两个,来检查它是否是第一个元素。
function portfolio_tax($x) {
$terms = get_terms($x);
$commaCheck = 0;
foreach($terms as $term) {
if($commaCheck != 0){echo ', ';}
echo $term->name;
$commaCheck++;
}
}