PHP字符串拼接顺序异常求助:数字串始终前置
问题解决:ACF字段拼接顺序异常的处理
你是不是碰到过这种头疼的情况?想把普通字符串和ACF的数字字段拼接成div的ID,结果不管怎么调整变量顺序,数字串总跑到结果最前面?就像你写的这段代码:
<?php $no = the_field('muralno');?> <?php $go = "slider-counter";?> <?php $item = "{$go}{$no}"; echo "$item" ?> <?php echo "<div id='$item' class='slider-counter'></div>"; ?>
预期输出的ID是slider-counter003,结果实际出来的却是003slider-counter,完全搞反了!
问题根源
其实问题出在WordPress Advanced Custom Fields(ACF)插件的the_field()函数上——这个函数的作用是直接输出字段内容,而不是返回字段值给变量。当你执行$no = the_field('muralno');的时候,它已经把muralno的内容(也就是那个数字串)直接打印到页面上了,后面的字符串拼接自然就排在了已经输出的数字串后面,看起来就像是数字串跑到了前面。
解决方案
把the_field()换成ACF的另一个函数get_field()就搞定了!get_field()的作用是返回字段值,不会直接输出,这样就能正常赋值给变量并参与拼接了。修正后的代码可以这么写:
<?php $no = get_field('muralno'); $item = "slider-counter". $no; echo "<div id='".$item."' class='slider-counter'></div>"; endif; ?>
这样就能得到你想要的slider-counter003啦!
内容的提问来源于stack exchange,提问作者Dussel
相关产品推荐
相关产品推荐

