[워드프레스] 홈 페이지에 하나의 카테고리만 표시되도록 하기

워드프레스의 관리자 페이지에서 설정 > 읽기 설정에서 전면 페이지 표시를 "최근 글"로 지정하면 홈(전면 페이지)에 최신 글 목록이 표시됩니다. 최신 글 목록(블로그 글)이 표시되는 첫 페이지(홈)에 하나의 카테고리 글만을 표시하게 하려면 pre_get_posts 액션을 사용할 수 있습니다. 이 후크는 쿼리(Query) 변수 오브젝트가 생성된 후, 실제 쿼리가 실행되기 전에 호출됩니다.

특정 카테고리의 글만 표시하려면 다음 코드를 워드프레스 테마의 함수 파일(functions.php)에 추가하도록 합니다.

function my_home_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '123' );
}
}
add_action( 'pre_get_posts', 'my_home_category' );

여기서 "123"은 표시할 카테고리 ID입니다. 원하는 카테고리의 ID로 변경하도록 합니다. (카테고리 ID를 확인하는 방법은 이 글을 참고하시기 바랍니다.)

메인 페이지에서 특정 카테고리 글을 제외하려면 다음과 같이 카테고리 ID 앞에 마이너스(-) 기호를 붙이면 됩니다.

function exclude_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '-1,-1347' );
}
}
add_action( 'pre_get_posts', 'exclude_category' );

이 방법을 사용하면 함수 파일에 직접 코드를 넣기 때문에 개별 테마 파일 소스를 수정할 필요가 없습니다. 만약 이 방법이 잘 작동하지 않는 경우에는 "루프에서 특정 카테고리의 글만 표시/제외" 글을 참고하여 테마 파일을 수정하는 방법을 시도해보시기 바랍니다.

참고: 함수 파일(functions.php)을 수정할 때에는 테마 편집기에서 가능하지만, 간혹 수정 과정에서 오류가 있는 경우 관리자 페이지 자체가 로드되지 않을 수 있습니다. (수정 작업이 많다면) FTP에 접속하여 직접 수정하는 방법이 더 효율적이고 정신 건강에도 좋을 수 있습니다. 특히 FTP에서 수정할 경우 선호하는 텍스트 에디터를 사용할 수 있고 문제가 되더라도 간단히 되돌리기(실행 취소) 기능을 사용하면 쉽게 복구가 가능합니다.

참고:

일부 글에 제휴 링크가 포함될 수 있으며 파트너스 활동으로 일정액의 수수료를 받을 수 있습니다.

댓글 남기기

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