
wordpress 中的短代码(shortcode)默认不会在 html 属性(如 `
在 WordPress 主题模板或自定义 PHP 片段中,短代码(如 [cmruncode name='dash'])仅在支持短代码上下文的区域(例如文章内容、小工具或通过 do_shortcode() 显式调用的位置)才会被解析为真实输出。而
因此,以下写法无效:
浏览器会尝试加载字面量 "[cmruncode name='dash']" 作为 URL,导致 404 或空白 iframe。
✅ 正确做法是:在 PHP 环境中使用 do_shortcode() 函数提前解析短代码,并将结果拼入 src 属性:
立即学习“PHP免费学习笔记(深入)”;
? 关键说明与最佳实践:
- ✅ do_shortcode() 是 WordPress 官方函数,专用于在任意 PHP 上下文中安全执行短代码;
- ✅ 使用 esc_url() 包裹输出,防止 XSS 风险或非法 URL(尤其当 user_url 可由用户编辑时);
- ⚠️ 若短代码返回空值或非 URL 字符串(如错误提示),iframe 将加载失败,建议增加容错判断:
- ❗ 注意:该方案仅适用于可执行 PHP 的环境(如主题文件 author.php、自定义页面模板或支持 PHP 的高级代码片段插件)。若在经典编辑器或区块编辑器的「自定义 HTML」块中直接粘贴上述 PHP 代码,将不生效(因 WordPress 默认不解析文章内容中的 PHP)。
总结:短代码不是“魔法字符串”,而是需由 PHP 主动触发的逻辑单元。在 iframe、script、form action 等 HTML 属性中动态插入短代码结果时,务必通过 do_shortcode() + esc_url() 组合实现安全、可靠渲染。











