WordPress에서 방문자 IP별 지역 콘텐츠 표시하기

저자:Lisa Farrell · 2026-06-01

WordPress 사이트에서는 글, 상품 페이지, 랜딩 페이지에서 방문자 지역에 따라 다른 콘텐츠를 보여줘야 할 때가 많습니다. Shortcode로 기본 콘텐츠를 출력하고 브라우저에서 https://my.ipin.io/info를 호출합니다.

API 설명

브라우저 측 호출은 방문자 IP를 확인하고 방문자의 IP, 국가, 지역, 도시를 반환합니다. 지역 콘텐츠 표시에 적합합니다.

{"ip":"185.220.236.7","country":"TW","region":"Taiwan","city":"Taipei"}

적용 시나리오

이 시나리오들은 IP 정보 인터페이스의 가치를 보여주며 서버 IP와 방문자 IP를 명확히 구분합니다.

  • 이 시나리오들은 IP 정보 인터페이스의 가치를 보여주며 서버 IP와 방문자 IP를 명확히 구분합니다.
  • WordPress에서 방문자 IP별 지역 콘텐츠 표시하기
  • API 설명
  • SEO 및 UX 권장사항

구현 로직

구현 전에 요청 주체를 확인해야 합니다. 서버 요청은 서버 IP를 반환하고 브라우저 요청은 방문자 IP를 반환합니다.

  • 구현 전에 요청 주체를 확인해야 합니다. 서버 요청은 서버 IP를 반환하고 브라우저 요청은 방문자 IP를 반환합니다.
  • 브라우저 측 호출은 방문자 IP를 확인하고 방문자의 IP, 국가, 지역, 도시를 반환합니다. 지역 콘텐츠 표시에 적합합니다.
  • 아래 예시는 모두 https://my.ipin.io/info를 직접 사용하며, 주석과 화면 문구도 현지화했습니다.
  • 기본 콘텐츠는 완전하고 읽을 수 있어야 하며, 지역 콘텐츠는 향상 요소로 사용해야 합니다. 검색엔진은 안정적인 콘텐츠를 수집하고, API 실패 시에도 페이지는 사용할 수 있습니다.

코드 예시

아래 예시는 모두 https://my.ipin.io/info를 직접 사용하며, 주석과 화면 문구도 현지화했습니다.

functions.php / plugin

function ipin_geo_content_shortcode() {
    $box_id = 'ipin-geo-content-' . wp_generate_uuid4();
    ob_start();
    ?>
    <div id="<?php echo esc_attr($box_id); ?>" class="ipin-geo-box">방문해 주셔서 감사합니다. 기본 콘텐츠입니다.</div>
    <script>
    (async function () {
      const el = document.getElementById("<?php echo esc_js($box_id); ?>");
      const defaultText = "방문해 주셔서 감사합니다. 기본 콘텐츠입니다.";
const contentMap = { TW: "대만 방문자 콘텐츠", US: "미국 방문자 콘텐츠", JP: "일본 방문자 콘텐츠" };
try {
  // 브라우저 측에서 /info를 호출하여 방문자 IP를 확인합니다.
  const info = await fetch("https://my.ipin.io/info").then(res => res.json());
  el.textContent = contentMap[info.country] || defaultText;
} catch (e) {
  // API 요청 실패 시 기본값을 유지합니다.
  el.textContent = defaultText;
}
    })();
    </script>
    <?php
    return ob_get_clean();
}
add_shortcode('geo_content', 'ipin_geo_content_shortcode');

Shortcode

[geo_content]

SEO 및 UX 권장사항

기본 콘텐츠는 완전하고 읽을 수 있어야 하며, 지역 콘텐츠는 향상 요소로 사용해야 합니다. 검색엔진은 안정적인 콘텐츠를 수집하고, API 실패 시에도 페이지는 사용할 수 있습니다.

흔한 실수

다음 문제들은 글의 정확성, 코드 사용성, API 설명의 신뢰도에 영향을 줍니다.

  • 다음 문제들은 글의 정확성, 코드 사용성, API 설명의 신뢰도에 영향을 줍니다.
  • 기본 콘텐츠는 완전하고 읽을 수 있어야 하며, 지역 콘텐츠는 향상 요소로 사용해야 합니다. 검색엔진은 안정적인 콘텐츠를 수집하고, API 실패 시에도 페이지는 사용할 수 있습니다.
  • 구현 전에 요청 주체를 확인해야 합니다. 서버 요청은 서버 IP를 반환하고 브라우저 요청은 방문자 IP를 반환합니다.
  • 이 시나리오들은 IP 정보 인터페이스의 가치를 보여주며 서버 IP와 방문자 IP를 명확히 구분합니다.

정리

브라우저 측 호출은 방문자 IP를 확인하고 방문자의 IP, 국가, 지역, 도시를 반환합니다. 지역 콘텐츠 표시에 적합합니다.

자주 묻는 질문

아래 질문은 이 글의 구현 내용에 맞춰 별도로 작성되었으며 현재 주제와 직접 관련됩니다.

질문:왜 WordPress에서는 Shortcode를 사용하나요?
답변:글, 페이지, Gutenberg, Elementor에 쉽게 넣을 수 있고 테마 템플릿을 매번 수정하지 않아도 되기 때문입니다.
질문:왜 방문자 판단을 브라우저에서 하나요?
답변:브라우저 호출은 방문자를 나타내지만 PHP 서버 호출은 WordPress 서버를 나타내기 때문입니다.
질문:Shortcode의 고유 ID는 무엇을 방지하나요?
답변:같은 페이지에 여러 지역 콘텐츠 블록이 있을 때 요소 충돌을 방지합니다.
질문:WordPress 캐시가 영향을 줄 수 있나요?
답변:전체 페이지 캐시는 지역별 결과를 섞을 수 있으므로 브라우저 측 향상으로 처리하는 것이 안전합니다.
질문:텍스트 대신 버튼을 표시할 수 있나요?
답변:네. API의 country에 따라 href, CSS 클래스, HTML 블록을 바꿀 수 있습니다.