-
목차
🔍 기본 워드프레스 검색의 한계
워드프레스 기본 검색은 wp_posts.post_title과 post_content 만 검색하며,
❌ 느림 (대규모 DB 시)
❌ 정확도 낮음 (정렬 기준 없음)
❌ 커스터마이징 어려움 (필터/조건 추가 불가)👉 검색 경험을 강화하기 위해 다음과 같은 기술이 필요합니다:
- WP_Query 확장 (커스텀 필드, 텍소노미 포함)
- Ajax 실시간 검색
- ElasticSearch 등 외부 검색엔진 연동
✅ 1. WP_Query 커스터마이징 – 고급 조건 검색
🔧 메타 필드 포함 검색
php복사편집$args = array( 'post_type' => 'product', 'meta_query' => array( array( 'key' => 'brand', 'value' => 'apple', 'compare' => 'LIKE' ) ), 's' => 'macbook' ); $query = new WP_Query($args);📌 기본 검색 + 커스텀 필드 필터링 동시 적용 가능
💡 텍소노미 + 키워드 통합 검색 예
php복사편집$args = array( 's' => '디자인', 'tax_query' => array( array( 'taxonomy' => 'portfolio_category', 'field' => 'slug', 'terms' => array('branding', 'uiux'), ) ) );
⚡ 2. Ajax 기반 라이브 검색 구현
① JS (예: 검색 입력 시 Ajax 요청)
javascript복사편집document.getElementById('search-input').addEventListener('input', function(e) { fetch(`/wp-admin/admin-ajax.php?action=live_search&term=${e.target.value}`) .then(res => res.text()) .then(html => { document.getElementById('search-results').innerHTML = html; }); });② PHP – Ajax 처리
php복사편집add_action('wp_ajax_live_search', 'handle_live_search'); add_action('wp_ajax_nopriv_live_search', 'handle_live_search'); function handle_live_search() { $term = sanitize_text_field($_GET['term'] ?? ''); $query = new WP_Query(array( 's' => $term, 'posts_per_page' => 5, )); while ($query->have_posts()) : $query->the_post(); echo '<p><a href="' . get_permalink() . '">' . get_the_title() . '</a></p>'; endwhile; wp_die(); }📌 실시간 검색 결과 출력 UI는 자유롭게 구성 가능
🧠 3. ElasticSearch 연동 – 대용량 데이터 & 빠른 검색
ElasticSearch 장점
기능설명초고속 인덱싱 수만 건의 포스트도 밀리초 검색 정렬, 필터, 랭킹 점수 기반 결과 정렬 가능 복합 필드 검색 제목 + 태그 + 커스텀 필드 검색 한글 형태소 분석 nori 분석기 사용 시 효과적
연동 방식
방법설명ElasticPress 플러그인 공식 API 연동 가능 WP Search with Algolia SaaS 기반 검색엔진 직접 REST 연동 ElasticSearch 서버 직접 구축 + WP 연동
ElasticPress 사용 예
- 플러그인 설치
- .env 또는 wp-config.php에 호스트 설정
- 인덱싱 실행
bash복사편집wp elasticpress index --setup- WP_Query 확장 없이도 자동 인덱싱 + 고속 검색
🔎 고급 검색 UX 요소
기능구현 방식자동완성 JavaScript + Ajax + Post title prefix 연관 검색어 인기 키워드 DB 저장 → 추천 필터 검색 WP_Query + Checkbox → tax_query/meta_query로 전달 무한 스크롤 결과 Ajax + offset + posts_per_page
✅ 검색 시스템 개선 체크리스트
항목완료 여부WP_Query 기반 커스텀 검색 로직 구성 ✅ / ❌ Ajax 실시간 검색 UI 구현 ✅ / ❌ 대용량 대응을 위한 ElasticPress or Algolia 연동 ✅ / ❌ 검색 결과 정렬 기준 및 UX 개선 ✅ / ❌ 검색 키워드 기록 및 분석 기능 구축 ✅ / ❌ '워드프레스' 카테고리의 다른 글
📦 왜 블록 개발이 중요한가? (1) 2025.05.15 🛒 WooCommerce의 성능과 전환율은 왜 중요한가? (3) 2025.05.13 🌟 블록 테마(Block Theme)란? (2) 2025.05.08 🚀 워드프레스 백엔드 성능이 중요한 이유 (1) 2025.05.07 🔧 왜 플러그인을 구조화해야 할까? (1) 2025.05.05 🤖 왜 워드프레스에 AI를 도입해야 할까? (3) 2025.05.05 🧠 워드프레스 데이터 저장 방식의 핵심 (2) 2025.05.04 🧠 왜 마이크로서비스가 필요한가? (2) 2025.05.03