如何从一个帖子自​​定义字段中分离和显示多个复选框数据值?

时间:2017-09-15 17:53:48

标签: php wordpress checkbox

我在我的主题和自定义字段中使用帖子自定义字段我有多个复选框选项。

选择多个复选框并保存后,以下是自定义字段保存的数据格式:

english| hindi| chhattisgarhi| tamil| telgu| malayalam| kannada| punjabi| gujarati| marathi| urdu| bengali| odia| other

现在,当我使用以下代码在single.php中打印此自定义字段时:

<?php the_field('languages'); ?>

我得到了这种类型的价值:

语言english| hindi| chhattisgarhi| tamil| telgu| malayalam| kannada| punjabi| gujarati| marathi| urdu| bengali| odia| other

但是如果我选择多个复选框,我想要这种类型的输出:

语言english, hindi, chhattisgarhi, tamil, telgu, malayalam, kannada, punjabi, gujarati, marathi, urdu, bengali, odia, other

如果我只选择1个复选框,那么:

语言English

任何人都可以帮忙吗?

感谢

3 个答案:

答案 0 :(得分:0)

有几种方法可以解决这个问题。您可以使用逗号(,)替换所有管道(|),因为看起来每个管道后面都有一个空格。

http://php.net/manual/en/function.str-replace.php

<?php
echo str_replace('|', ',', the_field('languages'));

另一种方法是将字符串分解为数组,然后使用分隔符将它们粘合在一起。

http://php.net/manual/en/function.explode.php http://php.net/manual/en/function.implode.php

<?php 
$elements = explode('|', the_field('languages'));
echo $implode(',', $elements);

答案 1 :(得分:0)

根据我的说法,第二个答案的逻辑是完全正确的,但是当他使用the_field时,我猜它会给出错误,所以如果你得到了错误,请使用get_field函数。

对于实例

 echo str_replace('|', ',', get_field('languages'));

答案 2 :(得分:0)

如果你想得到结果... _ field()函数你应该使用get_field()然后你可以对返回的数据进行下一个操作,比如str_replace()。请去两个功能并比较它们的最终部分,一个返回$ xxx;另一个有echo $ xxx;

<?php the_field("languages"); ?>

第二名:

<?php echo get_field("languages"); ?>

你可以使用:

<?php echo str_replace("|",",",get_field("languages")); ?>