워드프레스에서 브라우저 언어가 ko일 경우 기존 홈페이지 주소/ko/ 로 리다이렉션 시키는 코드 + 속도 개선
<script type="text/javascript"> document.addEventListener('DOMContentLoaded', function() { // 언어 변경 링크에 클릭 이벤트 리스너 추가 var koLink = document.querySelector('a[title="한국어"]'); var enLink = document.querySelector('a[title="English"]'); if (koLink) { koLink.addEventListener('click', function() { document.cookie = "user_selected_language=ko; path=/"; }); } if (enLink) { enLink.addEventListener('click', function() { document.cookie = "user_selected_language=en; path=/"; }); } // 쿠키 확인 var cookies = document.cookie.split(';').reduce(function(cookies, cookie) { var parts = cookie.split('='); cookies[parts[0].trim()] = parts[1].trim(); return cookies; }, {}); }); </script>
add_action('template_redirect', 'redirect_based_on_browser_language'); function redirect_based_on_browser_language() { if (!is_admin() && !is_user_logged_in()) { // 캐시 무효화를 위해 헤더 추가 header("Cache-Control: no-cache, no-store, must-revalidate"); header("Pragma: no-cache"); header("Expires: 0"); // PHP에서 쿠키 확인 $user_selected_language = isset($_COOKIE['user_selected_language']) ? $_COOKIE['user_selected_language'] : ''; // 현재 URL이 hansem.com 루트인지 확인 if ($_SERVER['HTTP_HOST'] === '홈페이지주소' && $_SERVER['REQUEST_URI'] === '/' && empty($user_selected_language)) { $lang = substr(strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']), 0, 2); if ($lang === 'ko') { wp_redirect('홈페이지주소/ko/'); exit; } } } }