是否对变量使用DO_SHORT代码?

时间:2012-10-07 作者:Jim Kite

在这个使用高级自定义字段插件中的变量嵌入的do\\u短代码中,很难获得PHP的正确格式。我想我已经试过了所有的变化,在阅读了所有我能找到的资源后,我仍然没有接近。

<?php 
    $address = get_field(\'cong_streetaddress\');
    $city = get_field(\'cong_city\');
    $province = get_field(\'cong_province\');
    $postalcode = get_field(\'cong_postalcode\');

    echo do_shortcode(\'[pw_map address="\'" . $address . " . " . $city . " . " . $province . " . " . $postalcode . "\'" width="100%" height="200px"]\'); 
?>
只使用一个变量,就像这样echo do_shortcode(\'[pw_map address="\'. $postalcode . \'" width="100%" height="200px"]\'); 工作正常。

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

您的语法被破坏,引号不匹配。尝试从短代码模板中分离数据,并使用sprintf():

$shortcode = sprintf(
    \'[pw_map address="%1$s %2$s %3$s %4$s" width="%5$s" height="200px"]\',
    $address,
    $city,
    $province,
    $postalcode,
    \'100%\'
);
echo do_shortcode( $shortcode );
这更容易阅读,也更难产生语法错误。:)

结束

相关推荐

PHP Widget and do_shortcode

我正在使用PHP小部件,它允许PHP代码从小部件执行。我尝试使用此代码执行do\\u shortcode,但它没有呈现<?php $lat = get_field(\'woo_maps_lat\'); $long = get_field(\'woo_maps_long\'); echo do_shortcode(\'[forecast location=\"\' . $lat .\',\'.$long. \'\" measurement=\\\'C\\\']\');