2012-06-08 61 views
0

我有作者与特定的书籍相关联,并且有多个作者,我需要用逗号分隔它们。我已经使用PHP implode函数完成了这项工作,但是我无法使其显示一串作者姓名,超链接(我无法正确设置变量)。(WordPress的) - PHP变量显示自定义字段超链接

这是我原来的代码,它显示了作者姓名,链接到他们各自的页面,但没有逗号分隔(没有内疚)。

<?php if(get_field('author')): ?> 
     <?php foreach(get_field('author') as $related): ?> 
      <a href="<?php echo get_permalink($related->ID); ?>"><?php echo get_the_title($related->ID) ?></a>&nbsp; 
     <?php endforeach; ?> 
    <?php endif; ?> 

这是代码我现在有,这逗号界定,其中有多个值,但不正确dsplay作者名称:

<?php foreach(get_field('author') as $related); 
$author = get_post_meta($post->ID, 'author'); 
$authorString = implode (',' , $author); 
echo $authorString; 
?> 

我想我需要编辑“$作者='包含变量

<a href="<?php echo get_permalink($related->ID); ?>"><?php echo get_the_title($related->ID) ?></a> 

位旧代码。任何帮助感谢!

回答

1

为什么要使用implode?如果计数器大于零,你不能只使用计数器并回显一个逗号吗?像这样:

<?php if(get_field('author')): ?> 
    <?php $i = 0; foreach(get_field('author') as $related): ?> 

     <?php if($i > 0) { echo ",&nbsp;"; } ?> 

     <a href="<?php echo get_permalink($related->ID); ?>"><?php echo get_the_title($related->ID) ?></a> 

    <?php ++$i; endforeach; ?> 
<?php endif; ?> 

这样你就可以使用你的工作代码。

+0

感谢vstm,这工作完美!我的印象是内爆是我需要使用的。我对你的建议更加满意。 – Rob

+0

你知道我可能会改变它以在适当的地方添加'&'吗? 例如: 1个作者 - X 两位作者 - X&X 3的作者X,X X 感谢 – Rob

+0

@Rob:要记住的第一件事是,'&'本身并不是有效HTML - 你必须将其转义为'&'否则有些浏览器可能会丢弃它。当然,这取决于哪些位置是“合适的” - 您可以使用'$ i'-计数器来检查打印哪个分隔符。如果它更复杂,那么你可能必须更精确,也许编辑问题并添加更多细节。 – vstm