PHP中在WordPress短代码里嵌入整数变量的问题求助
解决WordPress短代码中嵌入PHP整数变量的问题
你之前的代码无效的核心原因是:do_shortcode()函数仅接受单个参数(完整的短代码字符串),你传入的第二个参数$store_id会被直接忽略;同时%1$s这类占位符需要配合格式化函数使用,单独放在短代码里不会自动替换变量值。
下面是几种可行的正确写法:
方法1:字符串拼接
直接将变量与短代码字符串拼接,生成完整的短代码内容:
<?php $store_id = 1; echo do_shortcode('[dokan-stores store_id="' . $store_id . '"]'); ?>
方法2:双引号解析变量
PHP中双引号包裹的字符串会自动解析内部变量,可简化写法:
<?php $store_id = 1; // 用转义双引号包裹属性值 echo do_shortcode("[dokan-stores store_id=\"$store_id\"]"); // 或用单引号作为属性值的包裹符,无需转义 echo do_shortcode("[dokan-stores store_id='$store_id']"); ?>
方法3:sprintf格式化字符串
如果习惯使用占位符语法,可先用sprintf生成正确的短代码字符串,再传入do_shortcode:
<?php $store_id = 1; // %d是整数类型的占位符,更贴合变量类型 $shortcode = sprintf('[dokan-stores store_id="%d"]', $store_id); echo do_shortcode($shortcode); ?>
内容的提问来源于stack exchange,提问作者charlietlamb
相关产品推荐
相关产品推荐

