2017-09-15 62 views
0

我在我的主题和我的自定义字段中使用发布自定义字段我有多个复选框选择选项。如何从一个帖子自​​定义字段中分离并显示多个复选框数据值?

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

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

任何一个可以帮助这个?

谢谢

+0

为了谁downvoted,请添加评论,为什么你downvoted的人。简单地在没有评论的情况下投票是没有用的。 – waterloomatt

+0

@waterloomatt这不是我,但我可以理解为什么它会被低估。这个问题显示没有尝试自己解决问题,也没有证据甚至没有尝试过,甚至没有包含任何代码。所有这些都是本网站的要求。虽然评论有帮助,但网站政策会降低不符合网站指南的问题。在这种情况下,很明显,这个问题不符合[help section](https://stackoverflow.com/help/asking) – FluffyKitten

回答

0

如果你想获得导致..._场()函数,你应该使用get_field(),那么你可以像str_replace函数返回的数据使下一个操作()。请去身体两个功能和比较他们的结束部分,一个已经返回$ xxx;另一个有echo $ xxx;

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

其次:

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

你可以使用:

<?php echo str_replace("|",",",get_field("languages")); ?> 
+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); 
0

第二个答案的逻辑是完全正确的,根据我而是他用the_field我想这会给错误,所以如果你得到的错误使用get_field功能。

对于实例

echo str_replace('|', ',', get_field('languages')); 
相关问题