WP Query Functions WordPress Codex

[워드프레스] 특정 카테고리의 글 개수 변경하기

워드프레스에서 카테고리에 표시되는 글 개수는 관리자 페이지의 왼쪽 사이드바에서 설정 > 읽기의 “페이지당 보여줄 글의 수“에 지정된 설정을 따릅니다.

하지만 간혹 특정 카테고리의 글 개수를 달리해야 하는 경우가 발생할 수 있습니다. 이 경우 category.php 파일을 복사하여 category-id.php 파일을 만들고 다음 코드를 추가하는 방법을 생각해낼 것입니다(id는 카테고리 ID).

query_posts()를 사용하여 메인 쿼리를 변경하여 글 표시를 변경할 수 있습니다.  query_posts() 호출 후에 쿼리를 리셋하려면 wp_reset_query()를 사용하여 원래 메인 쿼리를 복원할 수 있습니다.

WP Query Functions WordPress Codex

Post Query에 대해 일반적으로 WP_Query 또는 get_posts를 사용하지만, WordPress Codex 페이지에서는 이 대신 pre_get_posts 필터 사용을 적극적으로 권장합니다.

query_posts('posts_per_page=5');

이와 유사하게 pre_get_posts 필터를 사용하여 특정 카테고리에 표시되는 글 개수를 변경할 수 있습니다. (이 경우 굳이 category-id.php 파일을 만들 필요가 없습니다.)

// 특정 카테고리의 글 개수 변경하기
// Change the number of posts for a specific category in wordpress
function number_of_posts_on_category($query){
if ($query-> is_category('50')) {
$query->set('posts_per_page', 5);
}
return $query;
}

add_filter('pre_get_posts', 'number_of_posts_on_category');

카테고리 ID와 표시되는 글 개수 설정을 변경해주도록 합니다.

pre_get_posts 필터를 다양하게 응용할 수 있습니다. 가령 다음 코드는 홈페이지(전면 페이지)에 하나의 카테고리만 표시합니다(참고).

// 홈페이지에 하나의 카테고리만 표시하기
// Show only one category on the front page in WordPress
function my_home_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( 'cat', '123' ); // 카테고리 ID를 적절히 변경
}
}
add_action( 'pre_get_posts', 'my_home_category' );

카테고리 ID를 확인하려면 WPsite Show IDs, Show IDs 등의 플러그인을 사용할 수 있습니다.

참고:



기부를 통해 이 블로그를 후원하실 수 있습니다.
워드프레스 설치/제작/문제해결이 필요한 경우 서비스(유료)를 요청해주세요.