워드프레스에서 검색 기능을 사용하지 않도록 설정하기

워드프레스 블로그에서 검색 기능이 불필요한 사이트가 있을 수 있습니다. 이 경우에 사용할 수 있는 방법입니다. 워드프레스 검색 기능을 비활성화하고 싶은 경우 Disable Search 플러그인을 사용할 수 있습니다.

[ 이 글을 2022년 6월 10일에 마지막으로 업데이트되었습니다. ]

워드프레스 검색 기능을 비활성화하는 Disable Search 플러그인

워드프레스 검색 기능을 비활성화하는 Disable Search 플러그인

Disable Search 플러그인을 설치하여 활성화하면 프런트엔드에서의 모든 검색 요청이 차단됩니다. 하지만 백엔드에서의 검색 기능은 영향을 받지 않습니다.

워드프레스 알림판 > 플러그인에서 'disable search'로 검색하여 이 플러그인을 설치하고 활성화하면 곧바로 프런트엔드에서 검색 기능을 비활성화됩니다. 별다른 세팅은 없습니다. 방문자가 검색을 시도하면 404 페이지가 표시됩니다.

  • 테마가 표준 get_search_form() 함수를 사용하여 검색 폼을 표시하는 경우 검색 폼이 표시되지 않도록 함
  • 테마가 searchform.php 템플릿을 사용하는 경우 검색 폼이 표시되지 않도록 함
  • 프런트엔드에 표시되는 관리자 툴바에 검색 항목이 표시되지 않도록 함
  • 검색 위젯 비활성화
    • 사용 가능한 위젯 리스트에서 검색 위젯 제거
    • 현재 사이드바에 사용 중인 모든 검색 위젯 비활성화
  • 검색 블록 비활성화
    • 사용 가능한 블록 목록에서 검색 블록 제거
    • 포스트나 위젯에서 현재 사용 중인 모든 검색 블록 비활성화
  • 검색 양식을 사용하거나 검색 양식을 사용하지 않고 방문자들이 GET 또는 POST 요청을 통해 직접 또는 수동 요청하는 것을 차단합니다.
  • 검색 요청을 시도하면 404 File Not Found (파일 없음) 페이지가 표시됩니다. (404.php 템플릿이 있는 경우 이 파일에서 지정된 양식으로 404 페이지가 표시됨)
  • Yoast SEO 플러그인의 SEO 스키마에서 SearchAction의 출력이 비활성화됩니다.

이 플러그인은 8개월 이상 업데이트가 안 되고 있지만 설치하여 테스트해보니 잘 작동하는 것 같습니다. PHP 8.0, 워드프레스 6.0, GeneratePress 테마가 설치된 환경에서 테스트하니 오류 없이 정상적으로 작동했습니다.

사용자 코드 사용하기

다음 코드를 사용하고 있는 워드프레스 테마의 함수 파일에 추가하면 검색 기능이 비활성화됩니다.

// Disable search feature in WordPress

function fb_filter_query( $query, $error = true ) {

if ( is_search() ) {
$query->is_search = false;
$query->query_vars[s] = false;
$query->query[s] = false;

// to error
if ( $error == true )
$query->is_404 = true;
}
}

add_action( 'parse_query', 'fb_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );

여기서 $error를 true로 설정하면 404 오류 페이지가 표시됩니다(테마에 404.php 파일이 있어야 함).

하지만 이 코드는 최신 워드프레스 버전이나 최신 PHP 버전에서는 더 이상 작동하지 않습니다. 위의 코드를 추가하면 "이 웹사이트에 치명적인 오류가 있습니다" 에러가 발생하면서 사이트에 접속하지 못할 수 있습니다. 그런 경우 추가한 코드를 삭제하시기 바랍니다.

마치며

이상으로 워드프레스 사이트에서 검색 기능을 완전히 차단하는 방법에 대해 살펴보았습니다. 수익형 블로그를 운영할 때 방문자들이 사이트의 콘텐츠를 검색하는 것을 막고 싶은 경우에도 이 방법을 이용할 수 있을 것입니다.

참고


댓글 남기기

* 이메일 주소는 공개되지 않습니다.