>  기사  >  백엔드 개발  >  WP_Query를 기본 쿼리와 병합

WP_Query를 기본 쿼리와 병합

PHPz
PHPz원래의
2023-08-30 19:57:17773검색

WP_Query를 기본 쿼리와 병합

이 시리즈에서는 WP_Query를 사용하여 테마나 플러그인에 사용할 사용자 정의 쿼리를 만드는 방법을 배웠습니다.

대부분의 경우 WP_Query 및 기본 쿼리의 매개변수와 별개인 완전히 새로운 매개변수 세트를 사용하게 되지만 매개변수에 기본 쿼리를 포함하려면 어떻게 해야 할까요?

이 작업을 수행할 수 있는 예는 다음과 같습니다.

  • 카테고리 또는 카테고리 페이지에서는 한 가지 게시물 유형의 게시물만 표시됩니다
  • 카테고리 페이지에서는 현재 카테고리와 기타 카테고리, 태그 또는 분류 용어가 포함된 게시물을 표시합니다
  • 게시물 유형 페이지에서는 특정 메타데이터가 있는 게시물만 표시

계속해서 설명할 수 있습니다. 기본 쿼리와 사용자 정의 쿼리를 결합할 수 있는 기회는 무수히 많습니다.

세 가지 예를 통해 이를 보여 드리겠습니다. 첫 번째는 루프가 있는 간단한 것입니다. 두 번째는 foreach를 사용하여 각 게시물 유형에 대해 하나씩 출력합니다. 세 번째는 두 개의 별도 쿼리를 사용하여 카테고리에 대한 두 게시물 유형을 모두 출력합니다. 보관소.

메인 쿼리를 기반으로 변수 정의

그러나 기본 쿼리를 WP_Query 结合起来,您需要以一种易于在 WP_Query 와 결합하려면 현재 쿼리 개체 인수를

에서 사용하기 쉬운 방식으로 저장해야 합니다. 가장 쉬운 방법은 변수에 할당하는 것입니다.

WP_Query다음과 같이

매개변수를 정의하기 전에 다음을 수행하십시오.

으아악 get_queried_object()

이 함수는 해당 개체가 무엇이든 관계없이 현재 쿼리된 개체를 반환합니다. 단일 게시물에서는 게시물 개체만 반환하지만 아카이브에서는 카테고리, 태그, 용어 개체 또는 아카이브와 관련된 모든 개체를 반환합니다. 쿼리 개체의 ID를 반환합니다.

WP_Query 参数中使用此 $mainquery그런 다음

매개변수에서 이

$mainquery 변수를 사용할 수 있습니다. 이제 몇 가지 예를 살펴보겠습니다.

예시 1: 카테고리 페이지에 한 가지 게시물 유형의 게시물만 표시product

웹사이트에 사용자 정의 게시물 유형을 추가하고 해당 사용자 정의 게시물 유형에 대한 카테고리를 활성화했다고 가정해 보겠습니다. 각 카테고리의 카테고리 아카이브에서는 게시물을 표시하지 않고 대신 새로운 게시물 유형의 게시물을 표시하려고 합니다. 이를

이라고 부르겠습니다.

귀하의 쿼리는 다음과 같습니다: category_name 参数以类别 slug 作为参数,因此需要在变量后面添加 ->slug 으아악

위의

를 사용하여 카테고리 슬러그를 출력했기 때문입니다. product 帖子类型的帖子。您可以在 category.php

이것은 현재 쿼리 카테고리를 사용하여 데이터베이스에서

게시물 유형의 게시물을 가져오는 쿼리를 제공합니다. category.php 페이지 템플릿에서 이를 사용할 수 있습니다. pre_get_posts

참고:

후크를 사용하여 기본 쿼리를 수정하고 이를 조건부 함수와 결합하여 카테고리 아카이브를 확인함으로써 이 결과를 얻을 수도 있습니다.

예 2: 여러 루프를 출력하기 위해 WP_Query 및 foreach와 결합된 기본 쿼리

다음 예에서는 현재 카테고리 페이지의 모든 게시물을 출력하지만, 한 블록에 모두 표시하는 대신 게시물 유형별로 구분합니다.

즉, CSS를 사용하여 게시물 유형을 페이지의 블록이나 열로 분류하거나 다른 목록으로 분리할 수 있습니다.

이를 위해 다음 코드를 사용할 수 있습니다: $mainquery 变量,但它还添加了一个 $post_types 变量来存储在网站上注册的所有帖子类型,以及一个 $post_type 으아악

이것은 이전에 사용했던

변수를 사용하여 각 개별 게시물 유형을 차례로 저장합니다.

예 3: 두 가지 게시물 유형에 대한 두 개의 별도 쿼리

마지막 예는 두 번째 예와 비슷하지만 게시물 유형을 각각 다른 루프가 있는 두 개의 개별 쿼리로 분할합니다. 이를 통해 각 콘텐츠에 표시되는 내용을 더 효과적으로 제어할 수 있으므로 제품의 주요 이미지를 포함하거나 다른 레이아웃을 제공하는 등 제품과 다르게 게시물을 표시할 수 있습니다. product

귀하의 웹사이트가

게시물 유형을 등록하고 해당 카테고리를 활성화했으며, 귀하도 동일한 카테고리로 블로그 게시물을 작성하고 있다고 가정해 보겠습니다. 각 카테고리 아카이브 페이지에서 가장 최근 게시물 10개를 표시한 다음 동일한 카테고리에 있는 모든 제품 목록을 표시하려고 합니다.

이를 수행하려면 다음과 같은 코드를 사용할 수 있습니다.

으아악

그런 다음 각 루프를 다르게 작성하여 각 게시물 유형에 대해 서로 다른 데이터를 출력할 수 있습니다.

요약WP_Query

위 예시에서 볼 수 있듯이 🎜를 사용하면 기본 쿼리와 별도로 완전히 사용자 정의 쿼리를 생성할 수 있을 뿐만 아니라, 현재 쿼리의 개체를 병합하여 아카이브 페이지에서 더욱 강력한 쿼리를 생성할 수도 있습니다. 🎜

위 예는 카테고리, 작성자, 날짜 등 다른 아카이브 유형을 사용하여 수행할 수도 있습니다. 더 많은 가능성을 생각해 보세요!

위 내용은 WP_Query를 기본 쿼리와 병합의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.