首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP / Wordpress循环-创建分隔符

PHP / Wordpress循环-创建分隔符
EN

Stack Overflow用户
提问于 2014-09-11 11:31:18
回答 4查看 449关注 0票数 0

我有以下的功能,抓住和显示与帖子相关的类别,这是完美的工作,但我想把分隔符之间,而不是100%确定如何实现这一点。有人能帮我一下吗?

CAT1 CAT2 CAT3

理想的情况是:

CAT1 / CAT2 / CAT3

注意,最后一个没有分隔器。

PHP

代码语言:javascript
复制
<ul class="inline-list">
<?php 
  $id = get_the_ID();
  $cats = get_the_category($id);
  foreach ( $cats as $cat ):
?>
    <li><a href="<?php echo get_category_link($cat->cat_ID); ?>"><?php echo $cat->name; ?></a></li>
<?php
  endforeach;
?>
    <li><?php FoundationPress_entry_meta(); ?></li>
</ul>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-09-11 11:51:13

正如其他人所解释的,CSS将是首选的方式。但是,如果您真的想在PHP中这样做,可以通过连接或输出缓冲将列表的html代码保存到变量中:

代码语言:javascript
复制
ob_start();
foreach ( $cats as $cat ) {
echo '<li><a href="'.get_category_link($cat->cat_ID).'">'.$cat->name.'</a> /</li>';
}
$list = ob_get_clean();

然后可以使用substr函数删除最后7个字符(" /</li>"),并在输出代码之前将"</li>“放回:

代码语言:javascript
复制
echo substr($list, 0, -7).'</li>;
票数 1
EN

Stack Overflow用户

发布于 2014-09-11 11:40:28

mikemike的答案是一个完美的解决方案,但是如果您出于某种原因想要使用代码来完成它,您可以尝试这样做。

代码语言:javascript
复制
<ul class="inline-list">
<?php 
 $id = get_the_ID();
 $cats = get_the_category($id);
 $count = 1;
 foreach ( $cats as $cat ):
?>
<li><a href="<?php echo get_category_link($cat->cat_ID); ?>"><?php echo $cat->name; ?></a> </li>
<?php
 if($count < count($cats)):
   echo '/';
 endif;
$count++;
endforeach;
?>
<li><?php FoundationPress_entry_meta(); ?></li>
</ul>
票数 0
EN

Stack Overflow用户

发布于 2014-09-11 11:41:46

您可以计算已经执行了多少次迭代,如果总次数较少,则输出分隔符:

代码语言:javascript
复制
$count = count($cats);
$i = 0;
foreach ( $cats as $cat ):?>
    <li>
        <a href="<?php echo get_category_link($cat->cat_ID); ?>"><?php echo $cat->name; ?></a>
        <?php echo ++$i < $count ? '/' : '';?>
    </li>
<?php endforeach;

实例:http://codepad.viper-7.com/7QU7x9

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25786309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档