워드프레스에서 카테고리에 표시되는 글 개수는 관리자 페이지의 왼쪽 사이드바에서 설정 > 읽기의 "페이지당 보여줄 글의 수"에 지정된 설정을 따릅니다.
하지만 간혹 특정 카테고리의 글 개수를 달리해야 하는 경우가 발생할 수 있습니다. 이 경우 category.php 파일을 복사하여 category-id.php 파일을 만들고 다음 코드를 추가하는 방법을 생각해낼 것입니다(id는 카테고리 ID).
query_posts()를 사용하여 메인 쿼리를 변경하여 글 표시를 변경할 수 있습니다. query_posts() 호출 후에 쿼리를 리셋하려면 wp_reset_query()를 사용하여 원래 메인 쿼리를 복원할 수 있습니다.
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 등의 플러그인을 사용할 수 있습니다.
댓글 남기기