커스텀 포스트 타입 글 목록을 홈(전면 페이지)에 표시하기
이 글에서 커스텀 포스트 타입(사용자 정의 글 유형)을 이용하여 "영화 리뷰" 글 유형을 만드는 방법을 살펴보았습니다. 포트폴리오 등과 같이 새로운 형식의 글 유형을 만드는 경우 사용자 정의 글 유형을 사용하면 유용합니다. 기본적으로 사용자 정의 글은 홈(전면 페이지)에 표시되지 않습니다.
사용자 정의 글 유형을 첫 페이지(전면 페이지)에 표시하려면 pre_get_posts 후크를 사용하면 됩니다. (pre_get_posts 액션 후크에 대한 자세한 내용은 워드프레스 Codex 페이지를 참고해보시기 바랍니다.)
add_action( 'pre_get_posts', 'add_my_post_types_to_query' ); function add_my_post_types_to_query( $query ) { if ( is_home() && $query->is_main_query() ) $query->set( 'post_type', array( 'post', 'your_Custom_Post_Type' ) ); return $query; }
위와 같은 코드를 함수 파일에 추가하면 'post' 유형과 'your_Custom_Post_Type'이 전면 페이지(홈)에 표시됩니다. 만약 모든 글 유형(post, page 포함)을 표시하고 싶은 경우에는 $query->set... 라인을 다음 라인으로 대체하면 됩니다.
$query->set( 'post_type', 'any' );
커스텀 포스트 타입을 카테고리 아카이브 페이지에 표시하기
기본적으로 워드프레스 커스텀 포스트 타입 글은 카테고리나 태그 아카이브 페이지에 표시되지 않습니다. 다음 코드를 테마의 함수 파일에 추가하면 사용자 정의 글 유형이 카테고리 페이지와 태그 페이지에 표시됩니다.
function themeprefix_show_cpt_archives( $query ) { if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) { $query->set( 'post_type', array( 'post', 'nav_menu_item', 'your_Custom_Post_Type' )); return $query; } } add_filter( 'pre_get_posts', 'themeprefix_show_cpt_archives' ); // Source: WP Beaches
커스텀 포스트 타입이 워드프레스 검색 결과에 표시되도록 설정하기
마찬가지로 사용자 정의 글 유형은 검색 결과에 표시되지 않습니다. 다음과 같은 함수를 추가하여 WordPress에서 커스텀 포스트 타입을 쿼리하여 검색되도록 할 수 있습니다.
add_filter( 'pre_get_posts', 'tgm_io_cpt_search' ); function tgm_io_cpt_search( $query ) { if ( $query->is_search ) { $query->set( 'post_type', array( 'post', 'movies', 'products', 'portfolio' ) ); } return $query; } // Source
플러그인을 사용할 경우 Advanced Custom Post Search와 같은 플러그인을 테스트해볼 수 있습니다.
기본 워드프레스 검색과 별도의 검색 폼을 만들고 싶다면 이 stackexchange 글의 내용을 참고해보시기 바랍니다.
댓글 남기기