web-dev-qa-db-ja.com

WPML翻訳ターム

私は彼らのフォーラムに投稿しましたが、何の答えも得られなかったので、ここで私は同じ質問をもう一度します。そう:

私は、画像を追加し、カスタム分類法(旅程と呼ばれる)の用語の順序を変更する可能性を追加するスクリプトを作成しました。

それで、私は各用語を一つずつ取得するこの方法を使います(最大10の用語しかないので、私はどんなパフォーマンスペナルティもないと思います):

$term = get_term_by('id', $itinerary_id, 'itinerary' );

その後、画像、説明、URLなどを取得します。

しかし、私が抱えている問題は、カスタムオーダーとカスタムイメージを維持するように多言語コンテンツを持っている必要があるということです。そのため、サイト管理者は各言語のイメージを追加する必要がありません。面白そうじゃない!)

WPMLのSQLテーブルを少し掘り下げようとしましたが、両方に関連するものは見つかりませんでした(英語とイタリア語の2言語でしか遊べません)。

だから私はget_translated_term()のようなものがあるかどうか疑問に思いましたか?

ありがとうございます。

1
Ionut Staicu

実際には、すでにそのAPIにはこのためのものがあります。

icl_object_id(ID, custom_taxonomy_name, return_original_if_missing,language_code)

魅力のように働きます。

これについてもっと読む: 言語依存ID

5
Ionut Staicu

私はこれが古い投稿であることを知っています、そして私の答えはこのように主にそこにいるグーグルのためのものになるでしょう(私がここにどうやったか)。

私は、上で提案したようにget_translated_term()のような関数を使うことができるという考えが好きでした。だから私はそれを書いた(あなたのfunctions.phpに入れて):

function get_translated_term($term_id, $taxonomy, $language) {

    $translated_term_id = icl_object_id($term_id, $taxonomy, true, $language);

    $translated_term_object = get_term_by('id', $translated_term_id, $taxonomy);

    return $translated_term_object->name;
}

その後、テーマ内の任意の場所で、次のように関数を呼び出すことができます。

echo get_translated_term($term_id, 'taxonomy name', ICL_LANGUAGE_CODE);
1
Alain O

WPML APIが更新されました。代わりに this filter を使用してください。あなたも自分自身をfunction_exists()から救うでしょう。

0
Vuk Vukovic