2025 . 03 . 29

英語ページと日本語ページで条件分岐

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; ?>
cavy
cavy