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

如何在WordPress中利用用户数据创建带动态URL的iframe

问题描述

我第一次在这里提问,完全不是编程专家,靠谷歌、StackOverflow和大量试错学了点HTML和CSS,现在遇到的问题涉及PHP,我几乎一无所知。

我正在搭建一个订阅型WordPress网站,需要创建一个src值动态生成的iframe:

  • src前缀固定:https://app.example.com/autoin/
  • 后缀是每个用户的唯一代码,存在用户资料的address-two字段里(我用的是第二地址栏)

我找了一段代码,通过WPBakery的Raw HTML框加到目标页面里:

<?php
$current_user = wp_get_current_user();
if($current_user) {
  ?>
  <iframe class="metricool-iframe" src="https://app.example.com/autoin/<?php echo $current_user->address-two; ?>">
    </iframe>
  <?php
}

?>

但Chrome查看页面源码时,URL还是https://app.example.com/autoin/<?php echo $current_user->address-two; ?>,代码根本没生效,求改进方法或者其他替代方案,我是纯新手😅

解决方法

1. 代码不生效的原因

WPBakery的Raw HTML框默认不会解析PHP代码,只会把它当作普通文本输出,所以你的PHP代码根本没被执行。

2. 推荐方案:用WordPress短代码

这是最适合新手的方法,步骤如下:

  • 打开WordPress后台「外观」→「主题文件编辑器」,找到functions.php(也可以用FTP工具找到主题目录下的functions.php文件)
  • 在文件末尾添加这段代码:
function user_unique_iframe_shortcode() {
    // 获取当前登录用户
    $current_user = wp_get_current_user();
    // 检查用户是否登录
    if (is_user_logged_in()) {
        // 从用户资料里取出address-two字段的值
        $user_code = get_user_meta($current_user->ID, 'address-two', true);
        if (!empty($user_code)) {
            // 拼接完整的iframe地址,esc_attr用来避免安全问题
            $iframe_src = 'https://app.example.com/autoin/' . esc_attr($user_code);
            return '<iframe class="metricool-iframe" src="' . $iframe_src . '"></iframe>';
        } else {
            return '<p>你的用户资料里缺少必要的代码,请先完善资料</p>';
        }
    } else {
        return '<p>请登录后查看内容</p>';
    }
}
// 注册短代码,名字是user_iframe
add_shortcode('user_iframe', 'user_unique_iframe_shortcode');
  • 保存修改后,回到WPBakery编辑页面,添加「短代码」模块,输入[user_iframe]就能显示动态iframe了。

3. 为什么不用原来的写法?

原来的$current_user->address-two写法有问题:PHP里的-会被当成减号运算,无法正确读取字段值。用get_user_meta函数是WordPress官方推荐的读取用户自定义字段的方法,兼容性更好。

4. 不推荐的方案:开启Raw HTML的PHP解析

有些插件或主题可以让Raw HTML框支持PHP,但这种方法容易带来安全风险,不建议新手尝试。

内容的提问来源于stack exchange,提问作者Ercos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:06:26