0

我有与特定书籍相关的作者,如果作者不止一个,我需要用逗号分隔它们。我已经使用 PHP implode 函数完成了这项工作,但我无法让它显示一串作者姓名,超链接(我无法正确设置变量)。

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

<?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; ?>

这是我现在拥有的代码,它用逗号分隔有多个值的位置,但不能正确显示作者姓名:

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

我想我需要编辑 '$author = ' 变量以包含

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

一些旧代码。任何帮助表示赞赏!

4

1 回答 1

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; ?>

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

于 2012-06-08T11:58:31.853 回答