워드프레스 블로그에서 검색 기능이 불필요한 사이트가 있을 수 있습니다. 이 경우에 사용할 수 있는 방법입니다. 워드프레스 검색 기능을 비활성화하고 싶은 경우 Disable Search 플러그인을 사용할 수 있습니다.
[ 이 글을 2022년 6월 10일에 마지막으로 업데이트되었습니다. ]
워드프레스 검색 기능을 비활성화하는 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 버전에서는 더 이상 작동하지 않습니다. 위의 코드를 추가하면 "이 웹사이트에 치명적인 오류가 있습니다" 에러가 발생하면서 사이트에 접속하지 못할 수 있습니다. 그런 경우 추가한 코드를 삭제하시기 바랍니다.
마치며
이상으로 워드프레스 사이트에서 검색 기능을 완전히 차단하는 방법에 대해 살펴보았습니다. 수익형 블로그를 운영할 때 방문자들이 사이트의 콘텐츠를 검색하는 것을 막고 싶은 경우에도 이 방법을 이용할 수 있을 것입니다.
댓글 남기기