You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 16:13:09