从循环输出的最后一项中删除逗号

时间:2013-04-21 作者:Jacob

(或在除最后一项外的所有项目中添加逗号…)

我发现的大多数信息都与在foreach 环在这种特殊情况下,我使用的是高级自定义字段,我在一个标准循环中,而不是foreach

除最后一项外,我需要在每项的末尾加一个逗号。

<?php while( has_sub_field(\'images\') ): ?>
    <?php $image = wp_get_attachment_image_src(get_sub_field(\'image\'), \'wsn_canvas\'); ?>
    <?php echo $image[0]; ?>
    //echo comma here
<?php endwhile; ?>

3 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

a没有什么“标准”while 循环,在这种情况下,这会使事情变得更困难,因为您需要循环中所有项目的总数,以便知道您是否在最后一个项目上。不清楚如何使用以下函数获得总计数has_sub_field 但有一种快速的方法可以做到这一点,当我不知道最终结果中有多少项时,我经常使用这种方法来构建字符分隔的字符串。

$attach = array();
while( has_sub_field(\'images\') ):
    $image = wp_get_attachment_image_src(get_sub_field(\'image\'), \'wsn_canvas\');
    $attach[] = $image[0];
endwhile;
echo implode(\', \',$attach);

SO网友:fuxia

使用wp_sprintf_l( $pattern, $args ):

$images = array();

while( has_sub_field(\'images\') )
{
    $image = wp_get_attachment_image_src(get_sub_field(\'image\'), \'wsn_canvas\');
    $images[] = $image[0];
}

if ( ! empty ( $images ) )
    echo wp_sprintf_l( \'%l\', $images );
这将使用本地化分隔符,例如阿拉伯文项目之间的阿拉伯文逗号。

默认情况下,最后两项的分隔符为\', and \' (Oxford comma), 但你也可以通过过滤器来改变这一点:

add_filter( \'wp_sprintf_l\', \'replace_oxford_comma\' );

function replace_oxford_comma( $separators )
{
    $separators[\'between_last_two\'] = \' and\';
    return $separators;
}

SO网友:Dan Knauss

也可以仅使用CSS创建带有“and”(牛津风格或非牛津风格)的逗号分隔列表:https://stackoverflow.com/questions/6587807/comma-delimited-lists-with-css-i-want-an-oxford-comma

结束

相关推荐

New loop vs widget

所以,我有一个侧边栏,我将列出所有帖子,我可以使用一个小部件。但是,使用一个新的循环而不是一个小部件或优先选择是否合适?

从循环输出的最后一项中删除逗号 - 小码农CODE - 行之有效找到问题解决它

从循环输出的最后一项中删除逗号

时间:2013-04-21 作者:Jacob

(或在除最后一项外的所有项目中添加逗号…)

我发现的大多数信息都与在foreach 环在这种特殊情况下,我使用的是高级自定义字段,我在一个标准循环中,而不是foreach

除最后一项外,我需要在每项的末尾加一个逗号。

<?php while( has_sub_field(\'images\') ): ?>
    <?php $image = wp_get_attachment_image_src(get_sub_field(\'image\'), \'wsn_canvas\'); ?>
    <?php echo $image[0]; ?>
    //echo comma here
<?php endwhile; ?>

3 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

a没有什么“标准”while 循环,在这种情况下,这会使事情变得更困难,因为您需要循环中所有项目的总数,以便知道您是否在最后一个项目上。不清楚如何使用以下函数获得总计数has_sub_field 但有一种快速的方法可以做到这一点,当我不知道最终结果中有多少项时,我经常使用这种方法来构建字符分隔的字符串。

$attach = array();
while( has_sub_field(\'images\') ):
    $image = wp_get_attachment_image_src(get_sub_field(\'image\'), \'wsn_canvas\');
    $attach[] = $image[0];
endwhile;
echo implode(\', \',$attach);

SO网友:fuxia

使用wp_sprintf_l( $pattern, $args ):

$images = array();

while( has_sub_field(\'images\') )
{
    $image = wp_get_attachment_image_src(get_sub_field(\'image\'), \'wsn_canvas\');
    $images[] = $image[0];
}

if ( ! empty ( $images ) )
    echo wp_sprintf_l( \'%l\', $images );
这将使用本地化分隔符,例如阿拉伯文项目之间的阿拉伯文逗号。

默认情况下,最后两项的分隔符为\', and \' (Oxford comma), 但你也可以通过过滤器来改变这一点:

add_filter( \'wp_sprintf_l\', \'replace_oxford_comma\' );

function replace_oxford_comma( $separators )
{
    $separators[\'between_last_two\'] = \' and\';
    return $separators;
}

SO网友:Dan Knauss

也可以仅使用CSS创建带有“and”(牛津风格或非牛津风格)的逗号分隔列表:https://stackoverflow.com/questions/6587807/comma-delimited-lists-with-css-i-want-an-oxford-comma

相关推荐

Increase offset while looping

我正在编写一个自定义帖子插件,它将自定义帖子分组显示为选项卡。每组4个岗位。是否可以编写一个偏移量随每次循环而增加的查询?因此,结果将是:-第一个查询显示从1到4的帖子-第二个查询显示从5到8的帖子-第三个查询显示从9到12的帖子等。 <div class=\"official-matters-tabs\"> <?php $args = array(\'post_type\' => \'official-matters\', \'showp