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

使用Contact Form 7发送邮件时<a>标签显示代码而非格式化链接

解决Contact Form 7邮件中HTML链接显示为纯文本的问题

我碰到过这个问题好几次,核心原因是Contact Form 7默认会自动转义邮件内容里的HTML标签(出于XSS安全防护的考虑),所以你的<a>标签被当成纯文本代码输出了。结合你用的Dynamic Text Extension插件,给你两个关键步骤来解决:

1. 补全并优化短码的HTML输出

先把你的短码补全为标准的HTML链接格式,确保返回内容是合法的HTML:

function get_pdf_link( $atts ) {
    global $post;
    switch ($post->post_title) {
        case 'Agency':
            return '<a rel="nofollow" target="_blank" href="https://your-domain.com/path/to/agency.pdf">下载Agency专属PDF</a>';
        // 可根据需要添加其他页面的匹配规则
        default:
            return '暂无可用PDF链接'; // 默认返回提示文本,避免空内容
    }
}
add_shortcode( 'get_pdf_link', 'get_pdf_link' );

2. 让CF7允许短码输出的HTML内容

CF7的邮件系统默认会转义所有内容,我们需要通过钩子让特定短码的HTML跳过转义:

add_filter( 'wpcf7_mail_tag_filter', 'allow_pdf_link_html_in_cf7', 10, 3 );
function allow_pdf_link_html_in_cf7( $output, $name, $html ) {
    // 检测当前处理的是我们的自定义短码
    if ( 'get_pdf_link' === $name ) {
        // 返回原始HTML,不进行转义处理
        return do_shortcode( '[get_pdf_link]' );
    }
    return $output;
}

3. 确认CF7邮件设置为HTML类型

最后进入你的Contact Form 7表单编辑页,找到「邮件」标签:

  • 滚动到「邮件类型」选项,选择「HTML」(默认是「纯文本」)
  • 保存表单设置,这样邮件客户端才能正确渲染HTML链接

完成这三步后,测试提交表单,邮件里应该就能显示可点击的链接,而不是纯文本代码了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:38:15