has_translation()


WordPressのhas_translation()関数は、指定された投稿やページが翻訳されているかどうかを確認するために使用されます。この関数は、多言語サイトを管理する際に役立ちます。

構文

has_translation( int $post_id, string $language_code );

引数の説明:

  • $post_id(int) — 翻訳の有無を確認したい投稿やページのID。
  • $language_code(string) — 確認したい言語のコード(例: ‘en’, ‘ja’)。

例1: 投稿が日本語に翻訳されているか確認

この例では、指定された投稿が日本語に翻訳されているかどうかを確認します。

<?php if ( has_translation( get_the_ID(), 'ja' ) ) { echo 'この投稿は日本語に翻訳されています。'; } else { echo 'この投稿は日本語に翻訳されていません。'; } ?>

例2: 特定のページが英語に翻訳されているか確認

この例では、特定のページが英語に翻訳されているかどうかを確認します。

<?php if ( has_translation( 123, 'en' ) ) { echo 'このページは英語に翻訳されています。'; } else { echo 'このページは英語に翻訳されていません。'; } ?>

例3: 翻訳がある場合に特定のコンテンツを表示

この例では、投稿が指定された言語に翻訳されている場合にのみコンテンツを表示します。

<?php if ( has_translation( get_the_ID(), 'es' ) ) { the_content(); } ?>

例4: 翻訳がない場合にメッセージを表示

この例では、投稿が指定された言語に翻訳されていない場合にメッセージを表示します。

<?php if ( !has_translation( get_the_ID(), 'fr' ) ) { echo 'この投稿はフランス語に翻訳されていません。'; } ?>

例5: 複数の言語で翻訳を確認

この例では、投稿が複数の言語に翻訳されているかどうかを確認します。

<?php if ( has_translation( get_the_ID(), 'de' ) && has_translation( get_the_ID(), 'it' ) ) { echo 'この投稿はドイツ語とイタリア語に翻訳されています。'; } ?>

例6: 翻訳がある場合にリンクを表示

この例では、投稿が指定された言語に翻訳されている場合にリンクを表示します。

<?php if ( has_translation( get_the_ID(), 'ru' ) ) { echo '<a href="' . get_permalink( get_the_ID() ) . '">ロシア語版を読む</a>'; } ?>

注意点

  • has_translation()関数は、多言語プラグイン(例: WPML)が有効になっている場合にのみ使用可能です。
  • 言語コードは、使用している多言語プラグインの設定に依存します。
  • 投稿IDや言語コードが正しく指定されていない場合、関数は正しく動作しません。

関連機能: