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

Hostinger环境下wpcf7_add_form_tag失效问题求助

解决Contact Form 7 [current_url]标签在Hostinger环境不渲染的问题

以下是针对你遇到的问题的排查和修复方案:

1. 修正get_home_url的调用错误

你的代码中get_home_url( $wp->request, $scheme = 'relative' )用法错误,get_home_url的第一个参数应为博客ID(可选,默认当前站点),而非请求路径。错误的参数会导致返回空值或无效URL,进而使标签输出异常。

替换为正确的路径获取方式,比如直接获取当前请求的相对路径:

$url = $wp->request;

2. 移除HTML实体转义

你返回的HTML使用了实体转义(<、"),Contact Form 7的标签处理器会直接渲染返回内容,转义后的代码会被当作文本输出,而非生成隐藏输入框。直接返回原生HTML即可。

3. 修正后的完整代码

add_action( 'wpcf7_init', 'wpcf7_add_form_tag_current_url', 100 ); // 增加优先级确保晚于CF7初始化

function wpcf7_add_form_tag_current_url() {
    wpcf7_add_form_tag( 'current_url',
        'wpcf7_current_url_form_tag_handler',
        array( 'name-attr' => true )
    );
}

function wpcf7_current_url_form_tag_handler( $tag ) {
    global $wp;
    $url = $wp->request; // 直接获取当前请求的相对路径
    $urlenc = str_replace('/', '', $url);
    return '<input type="hidden" name="origin" value="'. urlencode($urlenc) .'" />';
}

4. 额外排查步骤

  • 开启WordPress调试模式:在wp-config.php中添加define('WP_DEBUG', true);,查看是否有隐藏的错误信息(Hostinger可能默认关闭了错误输出)。
  • 清理Hostinger服务器级缓存:即使清理了插件缓存,Hostinger自带的服务器缓存(如LiteSpeed Cache)可能仍有残留,建议在Hostinger面板中清理服务器缓存。
  • 重新保存CF7表单:确保标签被表单系统正确解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 11:27:17