不同语言的同名类别? WPML添加了`@`

时间:2014-04-04 19:56:39

标签: php wordpress wpml

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

示例:

  

类别语言1(意大利语):Bar

     

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

如何删除此@en

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

我是否要更改PHP?

你能帮帮我吗? :)

谢谢你

1 个答案:

答案 0 :(得分: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);
}