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

如何为WordPress前端内容提交表单启用qTranslate-x的LSB

解决方案:在WordPress前端提交表单添加语言切换按钮(LSB)

我明白你已经搞定了后台的多语言切换按钮(LSB)配置,现在卡在前端提交列表页面的LSB显示上——这确实是很多多语言站点会遇到的痛点,尤其是自定义表单场景。下面我整理几个可行的排查和解决方向,你可以一步步试:

1. 确认前端页面加载了多语言核心资源

后台正常但前端不显示LSB,最常见的原因是前端没加载对应的脚本和样式。你可以打开浏览器开发者工具(按F12),切换到Network标签,搜索和你的多语言工具相关的JS/CSS文件(比如wp-i18n相关资源,或者你用的插件专属文件)。如果没找到这些资源,就得手动在主题的functions.php里添加加载逻辑:

// 给前端加载多语言必要的脚本和样式
add_action('wp_enqueue_scripts', 'load_i18n_assets_for_frontend');
function load_i18n_assets_for_frontend() {
    // 替换成你的多语言插件对应的脚本/样式句柄
    wp_enqueue_script('your-i18n-plugin-main-script');
    wp_enqueue_style('your-i18n-plugin-main-style');
}

2. 检查自定义表单对应内容的多语言支持

如果你的提交列表页面是基于自定义文章类型(CPT)做的,得先确保这个CPT开启了多语言支持:

  • 如果你用的是Polylang/WPML这类插件,去插件设置里找到「自定义文章类型」选项,勾选对应的列表CPT;
  • 要是你是手动注册的CPT,在注册代码里加上多语言相关的配置,比如Polylang的话加'pll_register_string' => true:
$args = array(
    'public' => true,
    'supports' => array('title', 'editor', 'custom-fields'),
    'pll_register_string' => true, // 开启Polylang的字符串翻译支持
    // 其他CPT配置参数
);
register_post_type('listing', $args);

3. 手动给表单字段添加LSB

如果你的表单是自定义开发的(不是用后台默认编辑器的字段),后台自动生成的LSB不会自动套用到前端字段上。这时候你需要手动调用多语言插件的函数来渲染LSB:

比如用Polylang的话:

在每个需要双语输入的字段旁边插入这段代码:

<?php
if (function_exists('pll_the_languages')) {
    pll_the_languages(array(
        'dropdown' => 1, // 用下拉菜单,适合前端布局
        'show_flags' => 1, // 显示国旗图标
        'show_names' => 0, // 隐藏语言名称节省空间
        'hide_current' => 1 // 不显示当前选中的语言
    ));
}
?>

用WPML的话:

调用WPML的钩子输出语言选择器:

<?php do_action('wpml_add_language_selector'); ?>

另外,表单提交时要记得捕获当前选中的语言,把它和表单数据关联保存,比如:

// Polylang获取当前语言
$current_lang = pll_current_language();
// WPML获取当前语言
$current_lang = apply_filters('wpml_current_language', NULL);

// 把$current_lang和表单字段值一起保存到数据库

4. 排查主题/插件冲突

有时候主题的前端脚本会阻止LSB渲染,或者其他表单插件的样式会把LSB覆盖掉。你可以先切换到WordPress默认主题(比如Twenty Twenty-Four),然后禁用除了多语言插件和表单插件之外的所有插件,测试LSB是否显示。如果显示了,再逐个启用主题/插件,找到冲突的那个,针对性调整(比如修改主题CSS,或者找插件的兼容设置)。

5. 检查i18n-config.json的前端配置

有些多语言工具的i18n-config.json需要明确指定哪些前端页面或内容类型启用多语言。你可以检查配置文件里是否有类似frontend_enabled_pages或者supported_post_types的字段,确保提交列表页面对应的页面ID、slug或者CPT被包含在内,比如:

{
  "supported_post_types": ["post", "page", "listing"],
  "frontend_enabled_pages": ["submit-listing"]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:10:13