
wordpress 中的自定义短代码(如 `[cmruncode]`)默认不会在 html 属性(如 `iframe src`)中自动解析;必须显式调用 `do_shortcode()` 函数才能执行并返回实际值。
在 WordPress 主题模板或自定义页面中直接嵌入
✅ 正确做法是:在 PHP 环境中使用 do_shortcode() 显式解析短代码,并将其结果作为 PHP 变量输出到 src 属性中。例如:
⚠️ 注意事项:
- 务必使用 esc_url():对 do_shortcode() 返回的 URL 进行转义,防止 XSS 漏洞或非法协议(如 javascript:)注入;
- 确保短代码函数已注册且可执行:cmruncode 插件需处于启用状态,且 'dash' 对应的代码片段中不应包含未定义变量(如 $userID 需在作用域内有效,建议改用 get_the_author_meta('user_url', get_the_author_meta('ID')) 或通过 wp_get_current_user() 获取当前用户);
- 避免在纯 HTML 文件或非 PHP 模板中使用:该方案仅适用于 .php 模板文件(如 author.php、自定义页面模板),不适用于古腾堡区块或经典编辑器中的纯文本模块。
立即学习“PHP免费学习笔记(深入)”;
总结:短代码不是“全局替换”,而是依赖 WordPress 的内容过滤机制。在任意需要动态生成 HTML 属性值的场景中,请始终优先使用 do_shortcode() + 安全转义(如 esc_url()、esc_attr())组合,兼顾功能与安全性。











