워드프레스에서 OPEN API KEY를 활용하는 방법(feat.한국관광공사)

워드프레스에서 한국관광공사의 API KEY를 활용하여 축제 정보나 관광 정보 콘텐츠를 제공하는 것은 훌륭한 아이디어입니다. 생생하고 신뢰성 있는 최신 정보를 자동으로 업데이트하여 사용자들에게 유용한 콘텐츠를 제공하고, 블로그의 전문성과 신뢰도를 높일 수 있습니다. 다음은 단계별로 상세한 방법을 안내해 드립니다.

1단계: 한국관광공사 Open API 활용 신청 및 API KEY 발급

가장 먼저 한국관광공사 Open API를 활용하기 위한 API KEY를 발급받아야 합니다.

  1. 한국관광공사 Open API 페이지 접속: 한국관광공사 Open API 공식 웹사이트에 접속합니다. (검색창에 “한국관광공사 Open API”로 검색하시면 쉽게 찾을 수 있습니다.)
  2. 회원가입 및 로그인: API 활용 신청을 위해 회원가입 후 로그인을 진행합니다.
  3. API 활용 신청: 웹사이트의 안내에 따라 API 활용 신청을 합니다. 어떤 종류의 정보(축제, 관광 정보 등)를 활용할 것인지, 서비스 목적 등을 상세하게 기재해야 합니다.
  4. API KEY 발급: 신청이 승인되면 API KEY가 발급됩니다. 이 KEY는 API를 호출할 때마다 필요하므로 안전하게 보관해야 합니다.

2단계: 워드프레스 환경 설정 및 플러그인 설치 (선택 사항)

API를 직접 호출하여 데이터를 처리할 수도 있지만, 초보자의 경우 API 연동을 쉽게 해주는 플러그인을 활용하는 것이 편리합니다.

  1. 워드프레스 설치 및 설정: 워드프레스 블로그가 아직 설치되지 않았다면 먼저 워드프레스를 설치하고 기본적인 설정을 완료합니다.
  2. API 연동 플러그인 검색 및 설치 (선택 사항): 워드프레스 관리자 페이지의 “플러그인 – 새로 추가” 메뉴에서 “REST API”, “JSON API”, “External API” 등의 키워드로 검색하여 API 연동에 도움이 될 만한 플러그인을 찾아 설치합니다. (예: WP REST API, Custom REST API Endpoints 등)
  3. 플러그인 설정 (선택 사항): 설치한 플러그인의 설정 페이지에서 필요한 설정을 진행합니다. (각 플러그인마다 설정 방법이 다를 수 있습니다.)

3단계: API 호출 및 데이터 처리 코드 작성

이제 실제로 한국관광공사 API를 호출하고 데이터를 받아와 워드프레스에 표시하는 코드를 작성해야 합니다. 이는 PHP 코드를 사용하여 워드프레스 테마 파일이나 플러그인 내에 구현할 수 있습니다.

  1. API 엔드포인트 및 요청 파라미터 확인: 한국관광공사 Open API 문서에서 원하는 정보(축제 정보, 관광 정보 등)를 제공하는 API 엔드포인트와 필요한 요청 파라미터(지역 코드, 행사 기간, 검색어 등)를 확인합니다.
  2. PHP 코드 작성: 워드프레스에서 API를 호출하고 데이터를 처리하는 PHP 코드를 작성합니다. 아래는 기본적인 예시 코드 구조입니다.
PHP
<?php
function fetch_kto_data($api_key, $content_type, $params = []) {
    $base_url = 'http://api.visitkorea.or.kr/openapi/service/rest/KorService/'; // 기본 URL
    $endpoint = ''; // API 엔드포인트 (예: 'searchFestival')

    if ($content_type === 'festival') {
        $endpoint = 'searchFestival';
    } elseif ($content_type === 'tour') {
        $endpoint = 'areaBasedList'; // 예시 엔드포인트
    }

    $query_params = array_merge([
        'ServiceKey' => $api_key,
        'MobileOS' => 'ETC',
        'MobileApp' => 'YourAppName', // 본인 앱 이름 설정
        '_type' => 'json',
        'numOfRows' => 10, // 가져올 데이터 수
        'pageNo' => 1, // 페이지 번호
    ], $params);

    $query_string = http_build_query($query_params);
    $api_url = $base_url . $endpoint . '?' . $query_string;

    $response = wp_remote_get($api_url);

    if (is_wp_error($response)) {
        error_log('KTO API 호출 오류: ' . $response->get_error_message());
        return false;
    }

    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body, true);

    return $data;
}

function display_kto_festival_data() {
    $api_key = 'YOUR_API_KEY'; // 발급받은 API KEY를 여기에 입력
    $festival_data = fetch_kto_data($api_key, 'festival', [
        'areaCode' => '39', // 예시: 제주 지역 코드
        'eventStartDate' => date('Ymd'), // 오늘 이후 축제
    ]);

    if ($festival_data && isset($festival_data['response']['body']['items']['item'])) {
        echo '<h2>오늘 이후 제주 지역 축제 정보</h2>';
        echo '<ul>';
        foreach ($festival_data['response']['body']['items']['item'] as $item) {
            echo '<li>';
            echo '<h3>' . esc_html($item['title']) . '</h3>';
            echo '<p><strong>기간:</strong> ' . esc_html($item['eventstartdate']) . ' ~ ' . esc_html($item['eventenddate']) . '</p>';
            echo '<p><strong>장소:</strong> ' . esc_html($item['addr1']) . ' ' . esc_html($item['addr2']) . '</p>';
            echo '<p><a href="' . esc_url($item['detailCommonUrl']) . '" target="_blank">상세정보</a></p>';
            echo '</li>';
        }
        echo '</ul>';
    } else {
        echo '<p>현재 해당 조건에 맞는 축제 정보가 없습니다.</p>';
    }
}

// 워드프레스 템플릿 파일 (예: single.php, page.php) 내에서 해당 함수를 호출하여 출력
// <?php display_kto_festival_data(); ?>

// 또는 Shortcode를 사용하여 특정 페이지나 글에 삽입
function kto_festival_shortcode($atts) {
    // Shortcode 속성 처리 (예: 지역 코드, 기간 등)
    $atts = shortcode_atts(['area' => '', 'start_date' => ''], $atts);
    $api_key = 'YOUR_API_KEY'; // 발급받은 API KEY를 여기에 입력
    $params = [];
    if ($atts['area']) {
        $params['areaCode'] = sanitize_text_field($atts['area']);
    }
    if ($atts['start_date']) {
        $params['eventStartDate'] = sanitize_text_field($atts['start_date']);
    }

    $festival_data = fetch_kto_data($api_key, 'festival', $params);

    $output = '';
    if ($festival_data && isset($festival_data['response']['body']['items']['item'])) {
        $output .= '<h2>' . ($atts['area'] ? $atts['area'] . ' 지역 ' : '') . '축제 정보</h2>';
        $output .= '<ul>';
        foreach ($festival_data['response']['body']['items']['item'] as $item) {
            $output .= '<li>';
            $output .= '<h3>' . esc_html($item['title']) . '</h3>';
            $output .= '<p><strong>기간:</strong> ' . esc_html($item['eventstartdate']) . ' ~ ' . esc_html($item['eventenddate']) . '</p>';
            $output .= '<p><strong>장소:</strong> ' . esc_html($item['addr1']) . ' ' . esc_html($item['addr2']) . '</p>';
            $output .= '<p><a href="' . esc_url($item['detailCommonUrl']) . '" target="_blank">상세정보</a></p>';
            $output .= '</li>';
        }
        $output .= '</ul>';
    } else {
        $output .= '<p>현재 해당 조건에 맞는 축제 정보가 없습니다.</p>';
    }
    return $output;
}
add_shortcode('kto_festival', 'kto_festival_shortcode');
?>
  • fetch_kto_data() 함수: API KEY, 콘텐츠 유형, 추가 파라미터를 받아 API를 호출하고 JSON 형식으로 응답받은 데이터를 PHP 배열로 변환하여 반환합니다.
  • display_kto_festival_data() 함수: 특정 지역의 오늘 이후 축제 정보를 가져와 워드프레스 페이지에 HTML 형식으로 출력하는 예시입니다.
  • kto_festival_shortcode() 함수: Shortcode [kto_festival area="39" start_date="20250504"] 형태로 워드프레스 글이나 페이지 내에 축제 정보를 삽입할 수 있도록 합니다. area 속성으로 지역 코드를, start_date 속성으로 시작 날짜를 지정할 수 있습니다.
  • YOUR_API_KEY: 발급받은 실제 API KEY로 변경해야 합니다.
  • YourAppName: 본인의 워드프레스 사이트 이름이나 블로그 이름으로 변경해야 합니다.
  • API 엔드포인트 및 파라미터: 한국관광공사 Open API 문서에 따라 원하는 정보에 맞는 엔드포인트와 필요한 파라미터를 사용해야 합니다.
  • 데이터 출력 방식: foreach 루프를 사용하여 API 응답 데이터를 순회하며 원하는 방식으로 HTML, CSS 등을 적용하여 출력할 수 있습니다.
  • 보안: API KEY는 중요한 정보이므로 코드 내에 직접 노출하는 것보다 워드프레스 설정 API나 환경 변수 등을 사용하여 관리하는 것이 좋습니다.
  1. 코드 적용: 작성한 PHP 코드를 워드프레스 테마의 functions.php 파일이나 별도의 플러그인을 만들어 해당 파일에 추가합니다. 테마 파일을 직접 수정하는 경우 테마 업데이트 시 코드가 사라질 수 있으므로 Child Theme을 사용하는 것을 권장합니다.

4단계: 워드프레스 페이지 또는 글에 콘텐츠 표시

작성한 코드를 통해 API를 호출하고 데이터를 처리했다면, 이제 워드프레스 페이지나 글에 해당 정보를 표시해야 합니다.

  1. 템플릿 파일 수정 (직접 출력): display_kto_festival_data() 함수를 작성했다면, 원하는 템플릿 파일 (single.php, page.php 등)의 적절한 위치에 <?php display_kto_festival_data(); ?> 코드를 삽입하여 직접 출력할 수 있습니다.
  2. Shortcode 사용 (플러그인 또는 functions.php): kto_festival_shortcode() 함수를 작성했다면, 워드프레스 글 편집기에서 [kto_festival area="원하는지역코드"] 와 같은 Shortcode를 삽입하여 원하는 위치에 축제 정보를 표시할 수 있습니다.

5단계: 디자인 및 추가 기능 구현 (선택 사항)

API에서 가져온 데이터를 보기 좋게 디자인하고, 사용자 편의를 위한 추가 기능을 구현할 수 있습니다.

  • CSS 스타일링: HTML로 출력된 데이터에 CSS를 적용하여 디자인을 개선합니다.
  • 필터 및 검색 기능: 지역별, 기간별 검색 필터나 키워드 검색 기능을 추가하여 사용자가 원하는 정보를 쉽게 찾을 수 있도록 합니다.
  • 지도 연동: API에서 제공하는 위치 정보를 활용하여 지도에 축제 또는 관광지 정보를 표시합니다.
  • 캐싱: API 호출 횟수를 줄이고 성능을 개선하기 위해 가져온 데이터를 일정 시간 동안 캐싱하는 기능을 구현합니다.

6단계: 유지보수 및 업데이트

API 서비스 정책 변경, 워드프레스 업데이트 등에 따라 코드를 유지보수하고 업데이트해야 할 수 있습니다. 주기적으로 한국관광공사 Open API 문서를 확인하고, 워드프레스 및 플러그인 업데이트 사항을 주시해야 합니다.

핵심 요약:

  1. 한국관광공사 Open API KEY 발급
  2. 워드프레스 환경 설정 및 API 연동 플러그인 설치 (선택 사항)
  3. PHP 코드를 사용하여 API 호출 및 데이터 처리
  4. 워드프레스 템플릿 파일 또는 Shortcode를 통해 콘텐츠 표시
  5. CSS 스타일링 및 추가 기능 구현 (선택 사항)
  6. 지속적인 유지보수 및 업데이트

이 단계를 차근차근 따라 하시면 워드프레스 블로그에서 한국관광공사의 API KEY를 활용하여 유용한 축제 및 관광 정보를 제공하는 매력적인 콘텐츠를 만들 수 있을 것입니다. API 문서와 워드프레스 개발 관련 자료를 꾸준히 참고하시면서 진행해 보시기 바랍니다.

Posts created 14

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top