WPML让您可以使用唯一的URL用于不同语言的自定义内容。这包括翻译文章缩略名,以及自定义文章类型的名称。

自定义文章类型的URL包括文章类型的名称和页面名称。 通常情况下,不同语言中的自定义文章类型类似如下:

  • /houses/my-green-house/
  • /casas/mi-casa-verde/

URL的第一部分,粗体,是文章类型。 第二部分是页面名称。

要翻译页面名称,单击文章编辑器中固定链接字段旁的编辑按钮。 因为WPML为每种语言使用不同的文章,您可以单独设置它们的名称。

编辑页面固定链接

接下来,您将需要翻译的是文章类型的名称。这需要多加小心。

翻译自定义文章类型的名称

要让WPML翻译自定义文章类型名称,您需要使用字符串翻译模块。

在PHP中声明自定义文章类型

如果您要通过PHP手动注册自定义文章类型,在缩略名名称旁添加_x() 调用。 WPML获取这些调用,就会知道您正在翻译URL。

当缩略名利用URL 缩略名上下文检查_x()函数时,WPML会检测到并在字符串翻译表中注册。

'slug' => _x( 'book', 'URL slug', 'your_text_domain' )

利用Types声明自定义文章类型

要不使用PHP定义自定义文章类型,您可以使用我们的Types插件。Types会自动声明自定义文章类型,这样就可以在WPML中翻译它们。

转到Types并编辑自定义文章类型。 如果未为名称翻译启用,您会看到一个指向WPML设置屏幕的链接:

Types链接到WPML以设置缩略名本地化

在WPML中启用自定义文章类型名称本地化

接下来,转到WPML->翻译管理 – >多语言内容设置。您将看到本地化缩略名这个新部分。

用于启用自定义文章类型名称本地化的核对表是:

1. 使得自定义文章类型可以翻译

设置要翻译的自定义文章类型

2. 启用网站缩略名翻译

点击复选框,允许本地化整个网站的文章类型名称

3. 选择在不同的语言中使用不同的缩略名

点击复选框,允许本地化每个自定义文章类型名称

现在,您已准备好翻译自定义文章类型的名称。输入他们的翻译,点击保存,翻译就应该出现在URL中。

翻译自定义文章类型存档

当您手动注册自定义的文章类型时,WordPress 允许您使用以下代码设置不同的存档缩略名:

has_archive

目前,当自定义的文章类型存档缩略名被赋予的值不是“TRUE”时,WPML不支持翻译它们。不过,该功能在我们的“待办事项”列表中,将很快在某个时候得到支持。请随时再次查看本节以获取此功能的更新信息。

*更新:WPML 3.2 运行设置 has_archive 为字符串,但是,如果该字符串值不同于自定义文章类型键,存档将默认为已注册的键。

示例:


add_action( 'init', 'create_post_type' );

function create_post_type() {

    register_post_type( 'book',

        array(

            'labels' => array(

                'name' => __( 'Books', 'textdomain' ),

                'singular_name' => __( 'Book', 'textdomain' )

            ),

            'public' => true,

            'has_archive' => __( 'book-archive', 'textdomain' ),

            'publicly_queryable' => true,

            'exclude_from_search' => false,

            'show_ui' => true,

            'show_in_menu' => true,

            'query_var' => true,

            'rewrite' => array('slug' => _x( 'book', 'URL slug', 'textdomain' )),

            'supports' =>array('title','editor', 'custom-fields','thumbnail')

        )

    );

}

虽然 has_archive 已被设为 「book-archive」,WPML 仍旧会使用 「book」。 这是您会在文章固定链接中看到的。