WPML

일부 플러그인과 테마는 기능을 위해 세션 정보에 의존합니다. 언어를 전환할 때 세션 정보가 손실되면 방문자가 장바구니에서 제품을 더 이상 볼 수 없을 수도 있습니다. WPML은 도메인과 언어 간에 이 세션 데이터를 동기화하는 메커니즘을 제공합니다.


WPML설정URL 및 SEO언어당 개별 도메인 페이지의 언어 URL 형식 섹션에서 언어 전환기를 통해 도메인 간 세션 인수 전달 옵션을 찾을 수 있습니다. 이 옵션은 도메인과 언어 간에 세션 데이터를 동기화합니다.

“언어 전환기를 통해 도메인 간 세션 인수 전달” 옵션
“언어 전환기를 통해 도메인 간 세션 인수 전달” 옵션

WPML이 도메인의 언어 간 세션 데이터를 동기화해야 하는 이유


브라우저는 쿠키 또는 세션이라는 곳에 정보를 보관합니다. 사용자를 ‘기억’해야 하는 사이트에 방문하면 해당 사이트는 개인화된 콘텐츠를 표시합니다. 이는 많은 전자상거래 및 멤버십 사이트에서 볼 수 있습니다. 브라우저는 사용자에 대한 일부 정보를 저장소에 보관하고 서버로 전송합니다. 서버는 이 정보를 사용하여 이전 브라우징 세션을 계속 유지합니다.

브라우저는 서로 다른 사이트 간에 이 세션 정보를 엄격하게 격리해야 합니다. 브라우저에 저장된 세션 정보 중 일부에는 로그인 세부 정보나 결제 정보가 포함됩니다. 당연히 Amazon의 결제 세부 정보가 amazon.com이 아닌 다른 사이트와 공유되는 것을 원하지 않을 것입니다.

WPML을 사용하면 사이트에서 서로 다른 도메인으로 언어를 제공할 수 있습니다. 브라우저는 이들이 실제로는 같은 사이트라는 것을 모르기 때문에 언어 간 세션 정보를 격리하는 것이 맞습니다. 따라서 WPML에는 언어 간에 세션 정보를 전달하는 자체 메커니즘이 포함되어 있습니다. 걱정할 필요 없습니다. 이 메커니즘은 WPML이 제공하는 도메인 간에만 세션 정보를 전달합니다. 이렇게 하면 방문자가 언어를 전환하더라도 브라우저 저장소가 지속적으로 유지됩니다.

WPML이 서로 다른 도메인의 언어 간 세션 데이터를 동기화하는 방법


도메인에 언어를 사용하도록 WPML을 구성하면 WPML은 언어 간에 세션 정보를 동기화해야 한다는 것을 인식합니다. WPML에 wpml_cross_domain_language_data라는 필터를 만들었습니다. 이 필터를 통해 플러그인과 테마가 도메인 간에 필요한 정보를 전달할 수 있습니다.

WPML Multilingual & Multicurrency for WooCommerce는 이 필터를 사용하여 장바구니 쿠키를 전달합니다.

따라서 도메인에서 언어를 사용하고 언어를 전환할 때 동기화해야 하는 쿠키가 있는 경우 언어 전환기의 URL에 인수가 추가된 것을 볼 수 있습니다.

다음과 같이 표시됩니다.

sample.es?xdomain_data=LONG_STRING

이 ‘마법 같은’ xdomain_data 인수에는 언어를 전환한 후 쿠키를 설정하기 위한 정보가 포함되어 있습니다.

xdomain_data 인수가 SEO 문제를 일으키나요?


전혀 그렇지 않습니다. WPML은 브라우저에서 Javascript를 사용하여 xdomain_data 인수를 추가합니다(브라우저에서 쿠키를 인코딩한다는 점을 기억하세요).

이 인수를 볼 수 있는 사람은 쿠키를 가진 사용자뿐입니다. 해당 정보는 WordPress에서 렌더링되는 페이지에서는 사용할 수 없습니다. 나중에 사용자 측에서 추가됩니다. 이 정보는 언어를 전환할 때(그리고 해당 정보가 실제로 필요할 때)만 웹 서버에 도착합니다.

사이트맵이나 색인된 페이지에서는 xdomain_data가 포함된 URL을 볼 수 없습니다. Google은 페이지 소스에서 이러한 인수를 전혀 볼 수 없습니다. 방문자가 실제로 클릭하는 링크이므로 Google 애널리틱스에서는 xdomain_data를 볼 수 있습니다(경우에 따라 다름). 이는 정상적인 현상이며 Google이나 SEO에 부정적인 결과를 초래하지 않습니다.

이 메커니즘이 사용자 정의 언어 전환기에서도 작동하나요?


WPML의 언어 전환기 API를 사용하여 사용자 정의 언어 전환기를 만들면 제대로 작동합니다. 정보는 JS를 사용하여 추가되므로, JS가 언어 전환기 URL을 인식하는 한 필요한 인수를 추가합니다.

작성자: Amir · 마지막 업데이트: 2020년 8월 25일