워드프레스를 운영하다 보면 Search Bar를 홈페이지 상단에 넣는 경우가 많습니다. 보통은 문서 검색을 하면 본문까지 모두 검색되어 나옵니다.
하지만 사이트의 글 제목만 검색하여 결과를 보여주고 싶은 운영자도 있을 것입니다. 이런 분들은 아래와 같이 간단한 플러그인과 코드를 적용하면 바로 적용 가능합니다.
워드프레스 글 제목 만으로 검색 적용 방법
1. WP Code 플러그인 설치
워드프레스의 알림판으로 들어가셔서 플러그인을 클릭합니다.
그다음 Add New Plugin 을 클릭합니다.
‘WPcode’로 검색을 해서 나오는 플러그인을 설치하고 활성화합니다.
2. PHP 코드 적용하기
워드프레스 알림판 > Code Snippets으로 들어갑니다.
이 화면에서 Use Snippet를 클릭합니다.
이제 PHP 문구를 작성해야 합니다.
- 스니펫 제목을 작성합니다.
- ‘PHP Snippet‘으로 변경합니다.
- 아래 코드를 복사하여 붙여넣기하고
- ‘Save Snippet‘를 클릭합니다.
function wpse_11826_search_by_title( $search, $wp_query ) {
if ( ! empty( $search ) && ! empty( $wp_query->query_vars['search_terms'] ) ) {
global $wpdb;
$q = $wp_query->query_vars;
$n = ! empty( $q['exact'] ) ? '' : '%';
$search = array();
foreach ( ( array ) $q['search_terms'] as $term )
$search[] = $wpdb->prepare( "$wpdb->posts.post_title LIKE %s", $n . $wpdb->esc_like( $term ) . $n );
if ( ! is_user_logged_in() )
$search[] = "$wpdb->posts.post_password = ''";
$search = ' AND ' . implode( ' AND ', $search );
}
return $search;
}
add_filter( 'posts_search', 'wpse_11826_search_by_title', 10, 2 );
이제 마지막 단계입니다.
작성한 PHP Snippet을 활성화하는 단계입니다.
아래와 같이 작성하신 스니펫 오른쪽에 보시면 활성화 버튼이 있습니다. 이 버튼을 파란색 쪽으로 클릭하시면 됩니다.
이상으로 워드프레스 내부 글을 제목으로 만으로 검색할 수 있도록 만드는 방법을 알아보았습니다. 간단하게 플러그인으로 세팅이 가능하기 때문에 초보자도 누구나 적용 가능합니다.