워드프레스 #39
이번에는 워드프레스에서 특정 글을 불러올 때 사용하는 WP_Query에 대해 알려드릴게요. 저번에 배열과 함수, 조건문, 반복문 이렇게 배워봤죠. 그런 개념들이 워드프레스에서 가장 많이 사용된 부분이 WP_Query라고 생각합니다.
워드프레스 개발을 하다 보면, 특정 조건에 맞는 포스트를 불러와야 하는 경우가 많습니다. 이를 위해 주로 WP_Query
클래스를 사용합니다. WP_Query
는 조건에 맞는 포스트를 쉽게 쿼리할 수 있는 강력한 도구입니다. 이 글에서는 WP_Query
를 사용해 포스트를 불러오는 방법을 살펴보겠습니다.
배열 생성
먼저, 쿼리에 사용할 조건들을 배열 형태로 정의합니다. 배열의 키는 쿼리의 조건을 나타내며, 값은 해당 조건에 맞는 값을 설정합니다.
예시 코드
$args = array(
'posts_per_page' => 12, // 불러올 포스트의 수
'category_name' => 'design', // 특정 카테고리의 포스트만 불러옴
'author_name' => 'admin', // 특정 작성자의 포스트만 불러옴
'order' => 'ASC', // 오름차순 정렬
'orderby' => 'rand', // 랜덤 정렬
'post_type' => 'post' // 포스트 타입을 'post'로 설정
);
$query = new WP_Query($args);
조건문과 반복문
조건문
WP_Query
객체를 생성한 후, if
문을 사용하여 쿼리 결과가 있는지 확인합니다.
<?php if ($query->have_posts()) : ?>
반복문
조건이 참이라면, while
문을 통해 쿼리 결과를 반복해서 출력합니다. 각 포스트는 the_post()
메서드를 통해 접근할 수 있습니다.
<?php while ($query->have_posts()) : $query->the_post(); ?>
<div class="col-3">
<?php get_template_part('content'); ?>
</div>
<?php endwhile; ?>
포스트가 없는 경우
포스트가 없는 경우에는 else
문을 사용하여 대체 콘텐츠를 표시할 수 있습니다.
<?php else : ?>
<?php get_template_part('content', 'empty'); ?>
<?php endif; ?>
유용한 파라미터
WP_Query
에 사용할 수 있는 다양한 파라미터들이 있습니다. 그 중 몇 가지 유용한 것들을 소개합니다:
category_name
: 특정 카테고리의 포스트를 불러올 때 사용posts_per_page
: 불러올 포스트의 수를 지정.-1
로 설정하면 모든 포스트를 불러옵니다.order
: 정렬 순서.ASC
는 오름차순,DESC
는 내림차순orderby
: 정렬 기준.rand
로 설정하면 랜덤으로 정렬됩니다.post_type
: 포스트 타입을 지정. 기본값은post
이며,page
로 설정하면 페이지를 불러옵니다.
이처럼 WP_Query
는 다양한 조건을 조합하여 원하는 포스트를 쉽게 쿼리할 수 있는 강력한 도구입니다. 자세한 내용은 워드프레스 공식 문서에서 확인할 수 있습니다.