로고
TIL

[WordPress] posts_per_page=-1로 모든 게시물 가져오기

·WordPress

WordPress에서 게시물 목록을 만들다 보면 정해진 개수만 가져오는 것이 아니라, 조건에 맞는 게시물을 모두 출력해야 할 때가 있습니다.

이때 WP_Queryposts_per_page-1을 지정하면 페이지당 개수 제한 없이 모든 결과를 가져올 수 있습니다.

posts_per_page

posts_per_pageWP_Query에서 한 페이지에 조회할 게시물 수를 지정하는 쿼리 변수입니다.

예를 들어 다음 코드는 조건에 맞는 게시물을 최대 6개까지 조회합니다.

$args = array(
    'posts_per_page' => 6,
);
 
$query = new WP_Query( $args );

블로그 목록이나 최근 글, 관련 글처럼 일부 게시물만 보여줄 때 주로 사용합니다.

posts_per_page = -1

$args = array(
    'posts_per_page' => -1,
);
 
$query = new WP_Query( $args );

posts_per_page-1을 지정하면 현재 쿼리 조건에 맞는 게시물을 모두 조회합니다.

게시물이 5개라면 5개, 20개라면 20개를 반환합니다. 다만 공개 여부나 게시물 유형, 카테고리 같은 다른 조회 조건까지 무시하는 것은 아닙니다. post_type, post_status, tax_query 등 함께 설정한 조건 안에서 개수 제한만 해제합니다.

WordPress 내부에서는 posts_per_page-1이면 nopagingtrue로 처리합니다. 따라서 결과를 여러 페이지로 나누지 않고 한 번에 가져옵니다.

Bricks Query Loop 에서 적용하기

Bricks의 Query Loop에서 쿼리 유형을 Posts로 선택하면 내부적으로 WP_Query 방식의 쿼리를 사용합니다.

따라서 Posts Per Page-1을 입력하면 조건에 맞는 게시물을 모두 출력할 수 있습니다.

직원, 지점, FAQ처럼 전체 개수가 작고 크게 늘어나지 않는 콘텐츠를 한 번에 보여줄 때 유용합니다.

언제 사용하는 것이 좋을까?

다음처럼 게시물 수가 적고 관리 가능한 콘텐츠에 적합합니다.

  • 직원 또는 팀원 목록

  • 지점 목록

  • FAQ

  • 소규모 제품 목록

반대로 블로그, 뉴스, 포트폴리오처럼 게시물이 계속 추가되는 콘텐츠에는 신중하게 사용해야 합니다.

-1은 쿼리 조건에 맞는 데이터를 한 번에 모두 불러오기 때문에 게시물 수가 많아질수록 데이터베이스 조회, PHP 처리, HTML 출력량이 함께 증가합니다. 이런 콘텐츠에는 적절한 개수를 지정하고 pagination으로 페이지마다 나누거나 Load More를 사용하는 편이 안전합니다.

$args = array(
    'posts_per_page' => 9,
    'paged'          => get_query_var( 'paged', 1 ),
);

기타 특징

페이지네이션(Pagination) 적용 불가

posts_per_page-1로 설정하면 WordPress가 페이지 구분을 사용하지 않는 nopaging 상태로 처리합니다.

따라서 페이지네이션과 함께 구성하기 보다는 모든 결과를 한 화면에 출력하려는 경우에 사용하는 값으로 이해하는 것이 좋습니다.

offset이 무시됨

WordPress 공식 문서에 따르면 posts_per_page-1일 때 offset은 무시됩니다.

일부 결과를 건너뛴 뒤 나머지를 모두 가져오려는 용도로 -1offset을 함께 사용해서는 안 됩니다. 필요한 경우에는 쿼리 조건이나 가져올 게시물 ID를 별도로 구성해야 합니다.

정리

posts_per_pageWP_Query가 한 페이지에 가져올 게시물 수를 지정하는 쿼리 변수입니다.

'posts_per_page' => -1

위와 같이 설정하면 다른 쿼리 조건에 맞는 게시물을 페이지 구분 없이 모두 조회합니다.

Bricks Query Loop의 Posts Per Page에도 같은 값을 사용할 수 있지만, 직원이나 FAQ처럼 개수가 제한된 콘텐츠에 사용하는 것이 적절합니다. 계속 증가하는 콘텐츠라면 성능과 사용자 경험을 고려해 조회 개수를 제한하고 페이지네이션 또는 Load More를 사용하는 편이 좋습니다.

참고

© 2026 In Kwon