워드프레스 글 제목 만으로 검색 적용 방법(Search only for the post title in WordPress)

워드프레스를 운영하다 보면 Search Bar를 홈페이지 상단에 넣는 경우가 많습니다. 보통은 문서 검색을 하면 본문까지 모두 검색되어 나옵니다.

하지만 사이트의 글 제목만 검색하여 결과를 보여주고 싶은 운영자도 있을 것입니다. 이런 분들은 아래와 같이 간단한 플러그인과 코드를 적용하면 바로 적용 가능합니다.

워드프레스 글 제목 만으로 검색 적용 방법

1. WP Code 플러그인 설치

워드프레스의 알림판으로 들어가셔서 플러그인을 클릭합니다.
그다음 Add New Plugin 을 클릭합니다.

WP Code 플러그인 설치

‘WPcode’로 검색을 해서 나오는 플러그인을 설치하고 활성화합니다.

WP Code 플러그인 설치 활성화

2. PHP 코드 적용하기

워드프레스 알림판 > Code Snippets으로 들어갑니다.
이 화면에서 Use Snippet를 클릭합니다.

Code Snippet 사용하기

이제 PHP 문구를 작성해야 합니다.

Code Snippet 코드 추가하기
  1. 스니펫 제목을 작성합니다.
  2. PHP Snippet‘으로 변경합니다.
  3. 아래 코드를 복사하여 붙여넣기하고
  4. 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을 활성화하는 단계입니다.
아래와 같이 작성하신 스니펫 오른쪽에 보시면 활성화 버튼이 있습니다. 이 버튼을 파란색 쪽으로 클릭하시면 됩니다.

Code Snippet 활성화

이상으로 워드프레스 내부 글을 제목으로 만으로 검색할 수 있도록 만드는 방법을 알아보았습니다. 간단하게 플러그인으로 세팅이 가능하기 때문에 초보자도 누구나 적용 가능합니다.

워드프레스 관련 글 더 보기

error: 이 블로그의 글은 복사방지가 되어 있습니다.