WPML

了解如何使保存在 wp_options 表中的文本可翻译,并自动转换对象 ID。

主题和插件有时会将文本作为其保存在 wp_options 表中的选项的一部分。WPML 允许您通过将 get_option 调用替换为您在 wpml-config.xml 文件中指定的翻译来翻译此类文本。

wpml-config.xml 文件是一个配置文档,用于指示 WPML 保存的选项中哪些字符串需要翻译。

本指南适用于创建自己的主题和插件的开发者。如果您要翻译来自第三方主题和插件的字符串,请阅读我们关于查找未出现在字符串翻译页面上的字符串的页面。

需要生成 wpml-config.xml 文件?请访问我们的分步指南,了解如何使用 Multilingual Tools 插件自动生成配置文件

翻译 wp_options 表中的字符串

当主题和插件使用 get_option 时,它们会从 wp_options 表中读取值。WPML 可以过滤这些调用,并为这些选项的值提供翻译。

这不仅适用于 wp_option 记录是简单字符串的情况,也适用于它是序列化数组的情况。

要翻译单个选项,请在 admin-texts 下添加一个 key 条目。要翻译序列化数组,请在一个 key 下添加几个键,如下例中的 my_plugin_options 所示。

语言配置文件中的管理文本
<wpml-config>
  <admin-texts>
    <key name="my_plugins_options">
      <key name="option_name_1" />
      <key name="option_name_2" />
    <key name="options_group_1">
      <key name="sub_option_name_11" />
      <key name="sub_option_name_12" />
    </key>
      <key name="options_group_2">
      <key name="sub_option_name_21" />
    <key name="sub_option_name_22" />
    </key>
    </key>
  <key name="simple_string_option"/>
</admin-texts>
 
</wpml-config>

可以在子键中使用通配符 *,如下例所示。

使用通配符的示例
<wpml-config>
  <admin-texts>
    <key name="testing_option">
      <key name="*"/>
    </key>
  </admin-texts>
</wpml-config>

它等同于以下代码:

等效代码
<wpml-config>
  <admin-texts>
    <key name="testing_option">
      <key name="sub_key_1"/>
      <key name="sub_key_2">
        <key name="sub_sub_21">
          <key name="sub_sub_211"/> 
        </key> 
        <key name="sub_sub_21"/>
        </key>
      <key name="more_sub_keys"/>
    </key>
  </admin-texts>
</wpml-config>

请注意,通配符 * 在父键中不起作用:

通配符在父键中不起作用
<wpml-config>
  <admin-texts>
    <key name="some_option_*" />
    <key name="*"/>
  </admin-texts>
</wpml-config>

自动转换管理文本中的对象 ID

从 WPML 4.8 开始,您可以声明某些管理文本包含对象 ID,例如文章、产品或分类法 ID。WPML 会在网站前端自动转换这些 ID。

这是关于自动转换简码 ID 的现有功能的扩展,并使用相同的语法。

admin-texts 下的 key 条目中,使用:

  • type 声明引用的对象,即 post-ids 或 taxonomy-ids
  • sub-type(可选)当您想要声明特定实体(例如产品)时

可以在任何嵌套级别添加 Typesub-type 属性。

WPML 可以检测并转换以下格式的 ID:

  • 单个 ID(例如 123)
  • ID 数组(和编码数组)(例如 [123,456,789])
  • 以逗号分隔的 ID 列表(例如“123,456,789”)
在管理文本中声明对象 ID 的示例
<wpml-config>
  <admin-texts>
    <key name="admin_text_option_key" type="post-ids" sub-type="product" />
    <key name="admin_text_with_nested_ids">
      <key name="admin_text_nested_key_with_ids" type="post-ids" sub-type="product" />
      <key name="admin_text_nested_key_with_ids_with_wildcard_*" type="post-ids" sub-type="product" />
      <key name="admin_text_nested_key_with_subkey">
        <key name="admin_text_nested_key_with_subkey_with_ids" type="post-ids" sub-type="product" />
          </key>
      </key>
  </admin-texts>
</wpml-config>

其他资源

要了解有关 wpml-config.xml 文件的更多信息,请访问语言配置文件指南。

要使用 wpml-config.xml 文件自定义其他元素,请访问我们的其他指南:

作者:Amir · 最后更新时间:2025年10月14日