Easy Sitemap (워드프레스 플러그인)

워드프레스를 위한 현대적이고 고성능의 HTML 사이트맵 생성기.

Easy Sitemap은 강력한 숏코드 시스템을 사용하여 페이지, 글, 그리고 커스텀 글 유형(CPT)에 대한 완전히 커스터마이징 가능한 사이트맵을 표시할 수 있게 해줍니다. 현대적인 OOP 아키텍처로 구축되어 있으며, 지능형 캐싱, PSR-4 자동 로딩, 그리고 개발자를 위한 광범위한 훅 기능을 특징으로 합니다.

Easy Sitemap (WordPress Plugin)

✨ 주요 기능

사이트 빌더를 위한

  • 범용 CPT 지원: 모든 공개 포스트 유형(WooCommerce 상품, 포트폴리오 등)을 자동으로 감지하고 지원합니다.
  • 비주얼 단축코드 생성기: 관리자 패널 내장 인터랙티브 빌더로 속성을 외울 필요 없이 코드를 생성합니다.
  • 계층적 레이아웃: 페이지의 상위/하위 관계와 게시물의 카테고리 그룹화를 표시합니다.
  • 반응형 그리드: CSS 그리드를 통해 다중 열 레이아웃(최대 6열)을 지원합니다.
  • 안전한 사용자 정의 스타일링: 테마를 수정하지 않고 플러그인 설정에서 직접 사용자 정의 CSS를 추가할 수 있습니다.

⚡ 성능 & 기술

  • 지능형 캐싱: 로그인한 사용자에게는 동적 콘텐츠를 유지하면서, 비회원 방문자에게 출력 내용을 캐시하기 위해 WordPress Transients를 사용합니다.
  • 최적화된 쿼리: 오버헤드를 최소화하기 위해 no_found_rows와 효율적인 데이터베이스 호출을 활용합니다.
  • 모던 아키텍처: PSR-4 오토로딩을 적용한 깔끔한 OOP 설계입니다.
  • SEO 친화적: 의미론적이고 구조화된 HTML 마크업을 생성합니다.

요구사항

  • WordPress: 5.0 이상
  • PHP: 7.2 이상
  • MySQL: 5.6 이상

설치

  1. 다운로드: 플러그인 파일을 압축 해제하세요.
  2. 업로드: easy-sitemap 폴더를 서버의 /wp-content/plugins/ 디렉토리로 이동하세요.
  3. 활성화: 워드프레스 관리자 → 플러그인으로 이동하여 Easy Sitemap을 활성화하세요.
  4. 설정: 설정 → Easy Sitemap으로 이동하여 전역 설정을 조정하거나 숏코드 생성기를 사용하세요.

숏코드 사용법

사이트맵을 표시하려면,
[easy_sitemap]
숏코드를 게시물, 페이지 또는 위젯에 삽입하세요.

숏코드 생성기

권장: 속성을 수동으로 입력하는 대신, 설정 → Easy Sitemap으로 이동하세요. 내장된 생성기를 사용하면 UI를 통해 옵션을 전환할 수 있으며, 생성된 숏코드가 자동으로 클립보드에 복사됩니다.

수동 속성 참조

다음 속성을 사용하여 출력을 사용자 정의할 수 있습니다:

1. 콘텐츠 및 필터링

속성 유형 기본값 설명
post_type string post 표시할 게시물 유형 (예: page, product, portfolio).
limit int 1000 표시할 최대 항목 수.
include string null 포함할 ID의 쉼표로 구분된 목록 (예: 10,15,22).
exclude string null 제외할 ID의 쉼표로 구분된 목록.
category string null 카테고리 슬러그로 필터링 (예: news,updates).
tag string null 태그 슬러그로 필터링.
author int null 작성자 ID로 필터링.
date_from string null 시작 날짜 (형식: YYYY-MM-DD).
date_to string null 종료 날짜 (형식: YYYY-MM-DD).

2. 고급 분류 필터링

사용자 정의 분류(예: WooCommerce 제품 카테고리)로 필터링하려면:

  • taxonomy: 분류 슬러그 (예: product_cat).
  • term: 특정 용어 슬러그 (예: accessories).
  • 참고: 두 속성은 반드시 함께 사용해야 합니다.

3. 정렬

속성 옵션 기본값
orderby date, title, modified, menu_order, rand, ID date
order DESC (내림차순), ASC (오름차순) DESC

4. 표시 & 레이아웃

속성 유형 기본값 설명
show_dates bool 0 제목 옆에 발행 날짜를 표시합니다.
show_excerpts bool 0 게시물 요약을 표시합니다.
show_images bool 0 대표 이미지(썸네일)를 표시합니다.
hierarchical bool 0 상위/하위 구조(페이지) 또는 카테고리 그룹(게시물)을 표시합니다.
columns int 1 목록을 여러 열로 나눕니다 (최대: 6).
class string null 래퍼에 사용자 정의 CSS 클래스를 추가합니다.

5. 캐싱 (인스턴스별)

속성 설명
cache 특정 단축 코드에 대한 캐싱을 비활성화하려면 0으로 설정하세요 (글로벌 설정을 재정의합니다).
cache_expiry 지속 시간(초) (기본값: 3600).

예시

표준 블로그 목록

[easy_sitemap post_type="post" show_dates="1" category="news"]

WooCommerce 제품 그리드
3열 그리드에 이미지가 포함된 12개의 전자제품을 표시합니다.

[easy_sitemap post_type="product" taxonomy="product_cat" term="electronics" show_images="1" columns="3" limit="12"]

계층적 페이지
목차나 사이트 색인에 이상적입니다.

[easy_sitemap post_type="page" hierarchical="1" orderby="menu_order" order="ASC"]

날짜 범위별 포트폴리오

[easy_sitemap post_type="portfolio" date_from="2023-01-01" date_to="2023-12-31"]

⚙️ 설정 및 성능

지능형 캐싱

이 플러그인은 스마트 캐싱 시스템을 사용하여 대용량 사이트맵에서도 사이트가 빠르게 유지되도록 보장합니다.

  • 전역 설정: 설정 → Easy Sitemap에서 캐싱을 구성하세요.
  • 게스트 전용 모드: 캐싱은 로그인하지 않은 사용자(게스트)에게만 적용됩니다. 로그인한 관리자는 항상 실시간 데이터를 확인합니다.
  • Transients: 기본 WordPress Transients를 사용합니다.
  • 자동 지우기: 플러그인이 비활성화되면 캐시가 자동으로 지워집니다.

사용자 정의 스타일링

플러그인 설정의 사용자 정의 CSS 상자를 사용하여 사이트맵의 스타일을 지정할 수 있습니다.

일반 선택자:

/* 컨테이너 */
.easy-sitemap { margin-bottom: 30px; }

/* 리스트 항목 */
.easy-sitemap-item { border-bottom: 1px solid #eee; }

/* 이미지 */
.easy-sitemap-image { border-radius: 4px; max-width: 80px; }

/* 날짜 */
.easy-sitemap-date { font-size: 0.85em; color: #888; }

‍ 개발자 문서

아키텍처

이 플러그인은 PSR-4 표준을 엄격히 따르며, 관리자(Admin), 프론트엔드(Frontend), 코어(Core) 로직 간의 관심사 분리를 따릅니다.

classes/
├── EasySitemap/
│   ├── Admin/          # 설정 & UI
│   ├── Frontend/       # 숏코드 엔진 & 자산
│   ├── Autoloader.php
│   └── Plugin.php      # 부트스트랩

훅(Hooks) & 필터(Filters)

다음 필터를 사용하여 동작을 프로그래밍 방식으로 수정하세요:

1. 쿼리 인수 수정
사이트맵이 불러오기 전
WP_Query
인수를 조정합니다.

add_filter( 'easy_sitemap_query_args', function( $query_args, $atts ) {
    // 예시: 모든 사이트맵이 특정 카테고리 ID를 제외하도록 강제 설정
    $query_args['category__not_in'] = [ 99 ];
    return $query_args;
}, 10, 2 );

2. 출력 HTML 수정
최종 HTML이 렌더링되기 전에 필터링합니다.

add_filter( 'easy_sitemap_output', function( $output, $atts, $posts ) {
    return '<div class="my-wrapper">' . $output . '</div>';
}, 10, 3 );

3. 이미지 크기 변경
소스 이미지 크기를 변경합니다 (기본값은 ‘썸네일’).

add_filter( 'easy_sitemap_image_size', function( $size ) {
    return 'medium'; 
} );

4. 지원되는 포스트 타입 추가
자동 감지가 실패할 경우 복잡한 CPT 지원을 수동으로 주입합니다.

add_filter( 'easy_sitemap_supported_post_types', function( $post_types ) {
    $post_types['my_custom_type'] = 'My Custom Type';
    return $post_types;
} );

문제 해결

  • 이미지가 표시되지 않나요? show_images="1" 속성이 있는지 확인하고, 사용 중인 테마가 포스트 썸네일을 지원하는지 확인하세요.
  • 변경 사항이 반영되지 않나요? 캐싱이 활성화된 경우 만료 시간(기본 1시간)을 기다리거나 플러그인 설정 페이지를 저장하여 캐시를 수동으로 비우세요.
  • 숏코드 생성기에 문제가 있나요? 브라우저가 클립보드 접근을 허용하는지 확인하세요. “복사” 버튼이 작동하지 않으면 생성기 상자의 텍스트를 수동으로 복사하세요.

라이선스 및 크레딧

라이선스: GNU 일반 공중 사용 허가서 v2.0 이상.

WordPress 커뮤니티를 위한 ❤️으로 제작되었습니다.