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

WordPress发布页面时自动移除<form>与<input>元素致表单失效求助

问题诊断与解决方案

你的情况大概率是WordPress的安全过滤机制或第三方插件/主题的限制导致的,以下是具体分析和解决办法:

可能的原因

  • WordPress默认KSES过滤系统:WordPress内置的HTML过滤系统(KSES)会根据用户角色限制可使用的HTML标签。如果你的账号没有unfiltered_html权限(比如编辑角色,默认仅管理员拥有该权限),发布时会自动移除<form>、<input>这类被判定为有风险的标签。
  • 安全插件拦截:机构站点通常会部署安全插件(如Wordfence、iThemes Security),这类插件可能设置了规则,阻止指向外部站点的表单,防止恶意跳转或提交行为。
  • 主题自定义内容清理:部分主题会对页面内容做额外的HTML清理,你修改页面其他区域后,可能触发了主题的内容处理逻辑,导致表单标签被移除。

解决办法

  1. 检查用户角色权限
    联系站点管理员,确认你的账号是否拥有unfiltered_html权限。如果没有,申请添加该权限,或者让管理员协助发布包含表单的页面。

  2. 排查安全插件
    临时禁用站点的安全插件,重新发布页面测试。如果表单不再被移除,就进入插件设置,找到“HTML过滤”或“表单拦截”相关选项,将外部数据库的域名加入白名单。

  3. 用短代码替代自定义HTML
    KSES对短代码的限制远低于直接的HTML,你可以创建自定义短代码来输出表单:

    • 登录WordPress后台,进入“外观”→“主题文件编辑器”,打开主题的functions.php文件(或通过FTP编辑该文件)。
    • 添加以下代码:
      function external_db_search_form() {
          ob_start();
      ?>
      <div style="padding: 1em; text-align: center; background-color: #eee;">
      <form id="dbSearchForm" method="get" accept-charset="UTF-8" action="https://externaldb.oursite.com/index.php">
      <input type="hidden" value="core/search" name="p">
      <label for="db_search_query">
      <svg class="searchIcon" style="height:0.8em;" version="1" xmlns="http://www.w3.org/2000/svg" x="0" y="0" viewBox="0 0 444 455" xml:space="preserve"><path fill="currentColor" d="M444 393l-62 62L267 340c-62 34-140 28-197-15C15 282-11 210 4 142 18 75 72 21 138 5c68-16 141 9 184 64 47 60 52 147 9 211L444 393zM58 181c0 52 33 98 82 116 48 17 103 0 135-39 69-85-6-215-114-198C102 69 58 122 58 181z"></path></svg>
      Search the External Database</label>
      <input id="db_search_query" type="text" name="q" maxlength="150" size="25">
      <input class="button" type="submit" title="Search" value="Search">
      <input type="hidden" value="1" name="content">
      </form>
      </div>
      <?php
          return ob_get_clean();
      }
      add_shortcode('external_db_search', 'external_db_search_form');
      
    • 保存修改后,回到页面编辑器,删除原来的自定义HTML块,插入短代码[external_db_search],发布页面即可。
  4. 调整主题过滤规则
    如果是主题导致的标签移除,检查主题的functions.php文件中是否有wp_kses相关的过滤函数,将<form>、<input>(包括其属性如id、name、type等)添加到允许的标签白名单中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 10:20:15