WordPressで英語と日本語で条件分岐
URLのパラメータに “?lang=en” がついているか、
ページスラッグか親ページスラッグが “en” かを判定
function.php
// 英語ページ判定
function get_current_language() {
global $post;
// 1. URLのパラメータを確認
if ( isset($_GET['lang']) && $_GET['lang'] === 'en' ) {
return 'en';
}
// 2. 投稿データがない場合は ja
if ( ! isset($post) ) {
return 'ja';
}
// 3. 固定ページのスラッグ取得
$current_slug = $post->post_name;
$parent_slug = '';
if ( $post->post_parent ) {
$parent = get_post($post->post_parent);
if ( $parent ) {
$parent_slug = $parent->post_name;
}
}
// 4. いずれかが 'en' の場合
if ( $current_slug === 'en' || $parent_slug === 'en' ) {
return 'en';
}
// 5. どれでもない場合は ja
return 'ja';
}
テンプレート
<?php $language = get_current_language();
if ($language == 'en' ) : ?>
英語の場合
<?php else: ?>
日本語の場合
<?php endif; ?>