许多 WordPress 主题包含硬编码的链接。 例如,指向支持和联系页面的页面底部链接可能是这样的:

<a href="/support/">Support</a> | <a href="/contact-us/">Contact us</a>

当网站使用多语言运行时,必须针对显示语言调整这些链接。 当切换语言时,(访客看到的)链接文本和(链接指向的)URL 都需要进行更改。

WPML 的 icl_link_to_element() 函数将生成本地化的页面链接,应当被用于此目的。

函数说明

icl_link_to_element(ID, 类型, 文本, 参数, 锚点);

参数 说明 必须的/可选的
ID 要连接至的文章、页面、标签或分类的 ID。 必须的
类型 要连接至的页面的类型。 可以是 『post’、’page’、’tag』 或 『category’。 可选的,默认为 『page』
文本 链接文本。如果未指定,将以当前语言生成元素的名称。 可选的,默认为元素的名称。 要保留默认值,请输入 false
参数 链接的可选参数。 如果使用的话,它应当是 PHP 数组。 可选的,默认为无参数。
锚点 链接的可选锚点。 可选的,默认为无锚点。

用法示例

示例 目的 生成的 HTML
<?php icl_link_to_element(10); ?> 连接至页面 10(支持页面) <a href="/support/">支持</a>
<?php icl_link_to_element(10,__(『Get help』)); ?> 连接至支持页面,并带有备用的链接文本 <a href="/support/">获取帮助</a>
<?php icl_link_to_element(10,false, array(『category’=>’products』,’priority’=>’high』); ?> 连接至支持页面并添加两个参数 <a href="/support/?category=products&amp;priority=high">支持</a>
<?php icl_link_to_element(10,false,false,’priority’=>’high』,’faq』); ?>
<?php icl_link_to_element(3,’tag』); ?> 连接至 ID 为 3 的标签(我们的‘新闻’标签) <a href="/tag/news/">新闻</a>

工作方式

您可以指定任何语言的页面/文章/标签/分类的 ID。 WPML 将检查当前语言是否有翻译。 如果有,它将生成其链接。 如果没有,它将连接至原始语言的页面。

当您手动指定链接文本时,最好将其加入 gettext 调用 __() 中,以便以正确的语言显示文本。 如果您没有指定任何链接文本(如第一个示例中所示),WPML 将生成该页面的名称。