1

我使用 WPML 来翻译我的 WordPress 主题。
两个类别在意大利语和英语中具有相同的名称。因此,WPML(WordPress)@ and the language code在第二语言的类别名称之后添加。
这是因为 WordPress 不希望有 2 个具有相同名称的类别。

例子:

类别语言 1(意大利语):酒吧

类别语言 2(英语):Bar @en。

我怎样才能删除这个@en

我找到了这个链接http://wpml.org/forums/topic/same-name-for-categories-in-different-languages/ 但它没有给我一些帮助。

我必须更改 PHP 吗?

你能帮我吗?:)

感谢你

4

1 回答 1

0

是的,你必须改变你的 PHP。如果您在术语名称中看到“@en”字符串,这意味着 WPML 过滤器没有过滤您的代码,可能是因为用于获取术语的函数不在 WPML 的过滤函数列表中。

因此,过滤它们的最简单方法是在生成输出之前使用 str_replace() 。

例如,如果您使用 wp_get_post_terms() 来获取特定帖子的术语列表:

$terms = wp_get_post_terms( $post->ID, 'your_taxonomy' );
foreach ( $terms as $t ) {
  echo str_replace('@'.ICL_LANGUAGE_CODE, '', $t->name);
}
于 2015-03-04T11:45:49.593 回答