我使用WPML翻译我的WordPress主题.
两个类别在意大利语和英语中具有相同的名称。因此,WPML(WordPress)在第二语言类别的名称后添加了@ and the language code
.
这是因为WordPress不希望有2个同名的类别。
例:
类别语言 1(意大利语):酒吧
类别语言2(英语):酒吧@en。
如何删除此@en
?
我发现这个链接 http://wpml.org/forums/topic/same-name-for-categories-in-different-languages/但它并没有给我一些帮助。
我必须更改 PHP?
你能帮我吗?:)
谢谢
是的,你必须改变你的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);
}