1

WPML を使用して WordPress テーマを翻訳しています。
イタリア語と英語で同じ名前の 2 つのカテゴリがあります。そのため、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 に答える