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

如何在WordPress的Formidable表单输入框中保留HTML标签

解决Formidable表单输入框保留HTML标签的问题

核心原因

Formidable表单的短码value参数默认会过滤HTML内容,同时如果字段未开启允许HTML的设置,也会自动移除标签。

解决方案

1. 确保字段允许HTML

打开Formidable表单编辑界面,找到对应的输入字段:

  • 若使用**文本区域(Textarea)**字段:在字段的「高级」设置中,勾选「允许HTML」选项。
  • 若使用单行文本框:建议切换为文本区域,单行文本框通常强制过滤HTML,无法保留标签。

2. 用钩子函数设置字段值(推荐)

不要通过短码的value参数直接传递HTML,改用Formidable的钩子绕过短码过滤。在主题的functions.php文件中添加以下代码:

add_filter('frm_setup_new_fields_vars', 'custom_set_form_html_value', 10, 2);
function custom_set_form_html_value($values, $form) {
    // 替换为你的表单ID
    if ($form->id != 4) {
        return $values;
    }
    
    // 替换为你需要传入的带HTML标签的字符串
    $html_content = '<p>john doe</p><p>123 ave st.</p><p>history of john...</p>';
    // 替换为目标字段的ID(可在表单字段编辑页查看)
    $target_field_id = 'field_123';
    
    $values[$target_field_id] = $html_content;
    return $values;
}

然后修改短码调用,无需再传value参数:

<div>[formidable id="4"]</div>

3. 若坚持使用短码value参数

对HTML内容进行双重转义后传入:

// 原始HTML内容
$html_content = '<p>john doe</p><p>123 ave st.</p><p>history of john...</p>';
// 双重转义
$double_escaped_value = htmlspecialchars(htmlspecialchars($html_content));

调用短码:

<div>[formidable id="4" value="<?php echo $double_escaped_value; ?>"]</div>

注:这种方法可靠性低于钩子方式,Formidable过滤规则更新可能导致失效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 13:05:18