所以我把这个地址格式数组放在一起,它的效果非常好:
$address_street = get_field( 'address_street' );
$address_city = get_field( 'address_city' );
$address_postcode = get_field( 'address_postcode' );
$address_state = get_field( 'address_state' );
$terms = get_the_terms($post->id, 'address_country');
foreach ( $terms as $term ) { }
?>
<div id="address-widget">
<p><strong>Where to find us?</strong></p>
<?php $arr = array($address_street, $address_city, $address_postcode, $address_state, $term->name); ?>
<p class="address-format">
<?php echo implode(", ", $arr); ?>
</p>
</div>
并输出昏迷分隔的地址的所有细节,就像我想要的那样。
现在的问题是$address_street, $address_postcode and $address_state
不是强制字段,所以如果它们没有被填写,那么它们将被留空而没有额外的昏迷。
所以我可以找到如何用这里有条件的项输入数组:How can I add a condition inside a php array?,但是如何在数组中添加条件,保留空白并将填充的元素用逗号分隔同时?
因此,如果只填写必填字段(城市,国家),我会得到如下输出: 城市,国家
答案 0 :(得分:3)
如果我找对你,解决方案可能比你想象的要简单。你想要的是在逗号分隔的字符串中打印所有数组值(如果它们不为空)。你可以做的是在打印时简单地从数组中删除空元素:
<?php echo implode(", ", array_filter($arr)); ?>
这会在将数据插入逗号分隔的字符串之前从数组中删除空元素。
答案 1 :(得分:1)
if(get_field('address_street')!=''){
$ address_street = get_field('address_street'); }
if(get_field('address_city')!=''){
$ address_city = get_field('address_city'); }
if(get_field('address_postcode')!=''){
$ address_postcode = get_field('address_postcode'); }
if(get_field('address_state')!=''){
$ address_state = get_field('address_state'); }
答案 2 :(得分:0)