了解如何使保存在 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(可选)当您想要声明特定实体(例如产品)时
可以在任何嵌套级别添加 Type 和 sub-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 文件自定义其他元素,请访问我们的其他指南: