1

如何在分配给帖子的类别的回声旁边添加空间:

<?php  
   $category_detail=get_the_category($post->ID); 
   foreach($category_detail as $cd)
   { 
     echo $cd->slug; 
   }
?>

上面的代码打印分配给帖子的所有类别,但它会像这样打印:

category1category5

如何在打印的每个类别之间添加空格?即类别1类别5

4

5 回答 5

3

有一些魔法:

echo $cd->slug.' ';
于 2013-06-26T22:06:12.107 回答
0

尝试这个

$count = 0;
foreach($category_detail as $cd)
{
   //if first item, don't append space, else append space
   echo ($count == 0 ? $cd->slug : ' '.$cd->slug);
   $count++;
} ?>
于 2013-06-26T22:08:09.343 回答
0

这是另一个使用 implode 的版本:

$category_detail = get_the_category($post->ID);
$category_slug_collect = array_map(
                             function($obj) { return $obj->slug; }, 
                             $category_detail
                         );
echo implode($category_slug_collect, ' '); 
于 2013-06-26T22:38:04.270 回答
0

我通常会做这样简单的事情:

<?php  
   $category_detail=get_the_category($post->ID); 
   $sep='';
   foreach($category_detail as $cd)
   { 
     echo "${sep}".$cd->slug;
     $sep=' '; 
   }
?>

没有尾随或前导空格。

于 2013-06-26T22:13:43.583 回答
0

代码背后的逻辑是:我们将测试这是否是第一个打印的 id。如果这是第一个要打印的 id,那么我们不会做任何事情。但如果它不是第一个 id,那么我们将在打印之前打印一个空格。这样每个 id 都将由一个空格分隔,并且不会有前导或尾随空格。

代码:

<?php  
  $category_detail=get_the_category($post->ID); 
  $i = 0;
  foreach($category_detail as $cd)
  { 
   if($i)echo " ";
   echo $cd->slug;
   $i=1;
  }
?>
于 2013-06-26T22:05:56.217 回答