[워드프레스] 커스텀 포스트 타입을 검색 결과에 표시하지 않는 방법


Warning: Undefined variable $final in /hosting/triki/html/wp-content/plugins/drkain-wiki/drkain-wiki.php on line 270

저는 워드프레스로 웹사이트를 만들면서 필요에 따라 사용자 정의 포스트 타입(커스텀 포스트 타입, 이하 CPT)을 다양하게 활용하는 편입니다.

문제발생

어떤 CPT의 경우 간단한 포스트를 등록해 다른 포스트 안에서 숏코드로 불러와 보여주는 것 들도 있는데, 그 와중에 워드프레스 검색 기능에서 해당 CPT의 아이템들이 노출되는 상황이 발생했더라구요.

그래서 이를 방지하기 위한 방법을 찾아보았습니다.

해결

다행히도 해결 방법은 간단했습니다. 워드프레스에서 CPT 를 만들 때 register_post_type 함수를 이용하는데, 여기에 설정만 넣어주면 되는 해결됩니다.

function register_my_cpt() {
  register_post_type(
    'mycpt',
    array(
      .. ,
      'exclude_from_search' => true, // 검색결과에서 해당 CPT 제외하기
      .. ,
    )
  );
}
add_action('init', 'register_my_cpt');

보통 CPT 만들 때 위와 같은 형식으로 만들텐데, 여러가지 설정 항목 중 exclude_from_search 항목을 true 로 설정하면 간단하게 해결됩니다.

더욱 자세한 내용은 아래 링크를 참고하세요.

참고자료