WP_Query를 사용하여 WordPress에서 쿼리 수행
게시 됨: 2023-02-12WordPress 웹사이트를 제공하는 데이터베이스는 귀중한 정보로 가득 차 있습니다. 이를 통해 다양한 변수로 게시물과 페이지를 필터링할 수 있습니다. 그러나 표시하려는 항목이 테마의 일부가 아닌 경우 해당 데이터를 사용하는 다른 방법이 있습니다.
이것은 WP_Query가 들어오는 곳입니다. 이것은 다양한 매개 변수를 사용하는 PHP 클래스입니다. 결과적으로 웹 사이트에서 사용하거나 표시하기 위해 WordPress 데이터베이스에서 데이터를 가져올 수 있습니다.
이 기사에서는 WP_Query 클래스와 이를 사용하는 방법에 대한 더 깊은 이해를 제공합니다. 또한 사용 시 따라야 할 몇 가지 중요한 단계를 안내합니다. 준비가 되었다면 바로 뛰어들자!
WP_Query란 무엇입니까?
앞서 언급했듯이 WP_Query는 WordPress 데이터베이스에서 사용하는 PHP 클래스입니다. 이 특정 클래스는 여러 가지 작업을 수행할 수 있지만 주로 데이터베이스에서 게시물을 가져오는 데 사용됩니다.
이름에서 알 수 있듯이 사용자가 설정한 기준에 따라 쿼리를 만듭니다. WordPress에서 WP_Query와 함께 사용할 수 있는 매개변수가 많기 때문에 여러 고유한 방식으로 게시물을 끌어오고 표시할 수 있습니다. 이 게시물의 뒷부분에서 이러한 옵션에 대해 자세히 살펴보겠습니다.
WP_Query 사용 방법
WordPress 코드베이스의 다양한 측면을 배우는 단계일지라도 WP_Query는 시작하기에 좋은 클래스입니다. 이제 웹사이트에서 사용할 수 있는 네 가지 방법을 분석해 보겠습니다.
1. 사용자 지정 루프 시작하기
WP_Query 호출을 알 수 있는 가장 좋은 방법 중 하나는 WordPress Loop를 이용하는 것입니다. 루프가 무엇인지 잘 모르는 경우 읽어야 할 중요한 개념입니다.
루프는 게시물 콘텐츠를 요청하는 데이터베이스를 호출하고 반환된 데이터를 표시합니다. 또한 사이트가 단일 페이지에 표시할 게시물 수( 설정 > 읽기 메뉴에서 구성할 수 있음)와 같은 설정된 매개 변수를 기반으로 작동합니다.
루프의 기본은 다음과 같습니다.
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// Display post content
endwhile;
endif;
?>
이 간단한 문장은 본질적으로 게시물이 있으면 표시되어야 한다는 것을 의미합니다. 물론 원하는 디스플레이를 만들기 위해 이 기반에 다양한 템플릿 태그를 추가할 수 있습니다.
루프에 WP_Query를 삽입할 수도 있습니다. 이렇게 하면 반환할 게시물에 대한 매개변수를 배치할 수 있습니다. 어떻게 생겼는지 분석해 보겠습니다.
<?php
// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();

기본 루프에서 동일한 if/while 문을 볼 수 있지만 추가 WP_Query 문자열이 있습니다. 여기에서 설정한 매개변수에 따라 표시할 게시물이 결정됩니다.
예를 들어 게시물 목록에서 특정 작성자를 제외하려는 경우 루프에서 WP_Query를 사용하여 수행할 수 있습니다.
$query = new WP_Query( array( 'author' => -12 ) );
이것을 루프에 배치하면 표시되는 게시물에 작성자 번호가 "12"인 사용자가 더 이상 포함되지 않습니다.
이 방법으로 사용할 수 있는 매개변수의 수는 거의 무한합니다. 두 가지 예를 들기 위해 범주 정보와 고급 분류법을 포함할 수 있습니다.
2. 인수: WordPress 사용자 지정 쿼리의 백본
앞의 예에서 "($args)"가 문자열의 일부임을 눈치챘을 것입니다. 이것은 포함된 '인수'를 참조하는 쿼리의 중요한 부분입니다. 반환된 데이터에 포함할 내용을 정확히 데이터베이스에 알려줍니다.
기본적으로 이러한 인수는 표시하려는 정확한 결과를 결정하도록 설정할 수 있습니다. 인수는 변수의 값을 변경하는 데에도 사용할 수 있습니다. 예를 들어 범주 목록이 페이지에 표시되는 방식을 변경하려는 경우 인수를 사용할 수 있습니다.
귀하의 인수는 변수 및 값의 배열을 정의합니다. 따라서 원하는 경우 인수를 사용하여 배열을 정의하고 범주를 내림차순으로 표시하도록 데이터베이스에 지시할 수 있습니다. 또한 동일한 방법을 사용하여 게시물이 포함되지 않은 카테고리를 제외할 수 있습니다.
3. WP_Query의 매개변수: 카테고리, 태그 등
지금까지 매개변수에 대해서만 언급했습니다. 이 시점에서 그들이 실제로 무엇을 할 수 있는지 자세히 살펴보겠습니다. 그들의 주요 기능은 사용자 정의 디자인 게시물 모음을 가져올 수 있도록 하는 것입니다.
사이트 헤더에 사용할 수 있는 매개변수의 한 예는 범주 매개변수입니다. 이를 사용하여 표시할 특정 범주를 지정할 수 있습니다. 이는 관련 카테고리 번호 또는 슬러그를 제공하여 수행됩니다.
또한 Tag 매개변수를 사용하여 동일한 작업을 수행할 수 있습니다. 물론 범주 및 태그 매개변수는 WP_Query를 사용할 때 빙산의 일각에 불과합니다.
4. 메서드 및 속성으로 개체 수정
WP_Query와 같은 클래스의 속성을 직접 변경하는 것은 권장되지 않지만 메서드를 사용하여 속성과 상호 작용할 수 있습니다. 기본적으로 메서드는 함수와 같고 속성은 변수와 같습니다.
WP_Query에는 많은 속성이 있습니다. 단순한 "$posts" 속성에서 더 복잡한 속성까지 다양합니다. 그들과 상호 작용하는 데 사용되는 방법이 무엇이든 데이터는 배치하기로 선택한 매개 변수를 기반으로 반환됩니다.
WordPress의 WP_Query 대 query_posts()
페이지에서 기본 쿼리를 수정하는 다른 방법이 있다는 점은 주목할 가치가 있습니다. 이것은 query_posts() 함수입니다. 이것은 WP_Query와 유사한 방식으로 작동할 수 있지만 매우 문제가 될 수도 있습니다.
WordPress Code Reference에서는 웹사이트의 기본 루프 내에서 이 기능을 사용하지 말 것을 강력히 권장합니다. 플러그인과 테마에서도 피하는 것이 가장 좋습니다. 기본 쿼리를 완전히 재정의하기 때문입니다.
쿼리를 실행한 후 기본 루프를 '재설정'할 수도 있으므로 WP_Query 클래스가 선호됩니다. WP_Query를 사용하면 루프에서 여러 쿼리를 실행할 수 있으므로 wp_reset_postdata 함수를 구현하는 방법도 이해하고 싶을 것입니다.
기본 WordPress 루프 내부에 보조 루프를 삽입한 경우 재설정 기능이 끝에 배치되고 다음과 같이 표시됩니다.
<?php wp_reset_postdata(); ?>
이렇게 하면 기본 템플릿 태그가 복원되고 보조 루프가 시작되기 전 상태로 돌아갑니다.
WP 엔진으로 WordPress 사이트 사용자 지정
웹사이트에 항목이 표시되는 방식을 조정할 수 있다는 것은 워드프레스 사용의 이점 중 하나에 불과합니다. WP_Query를 이해하고 개발자 리소스 페이지에서 제공되는 도구를 활용하면 진정한 맞춤형 웹사이트를 구축하는 데 도움이 될 수 있습니다.
여기 WP Engine에서는 매력적인 웹 사이트를 구축하는 데 필요한 리소스가 있는지 확인하는 데 열정적입니다. 오늘 WordPress 솔루션 및 호스팅 계획을 확인하십시오!