>  기사  >  CMS 튜토리얼  >  WP_Query의 강력한 활용: 속성 및 메서드 탐색

WP_Query의 강력한 활용: 속성 및 메서드 탐색

王林
王林원래의
2023-09-04 08:05:06616검색

释放 WP_Query 的力量:探索属性和方法

Mastering WP_Query 시리즈의 또 다른 기사에 오신 것을 환영합니다. 우리는 지금까지 어떻게 지내고 있나요? 우리가 이 튜토리얼을 작성하면서 즐거웠던 만큼 여러분도 이 튜토리얼을 즐기시기 바랍니다.

이 튜토리얼에서는 WP_Query 클래스의 속성과 메서드에 대해 알아봅니다. 하지만 먼저 수업시간에 '속성'과 '방법'에 대해 논의하는 것이 적절하다고 생각했습니다.

우리는?

속성과 메서드란 정확히 무엇인가요?

PHP에는 코드를 작성하는 더 간단한 방법이 있습니다. 바로 객체 지향 프로그래밍, 즉 OOP입니다. OOP의 경우 "클래스"를 청사진으로 사용합니다. 이 용어는 Code Tuts+의 classic 게시물, Jason Lengstorf의 "초보자를 위한 객체 지향 PHP"에서 얻었습니다:

예를 들어 클래스는 집의 청사진과 같습니다. 집의 모양을 종이에 정의하고 집이 존재하지 않더라도 집의 여러 부분 간의 관계를 명확하게 정의하고 계획합니다.

(WP_Query는 WordPress의 핵심 클래스라는 점을 기억하세요.)

PHP 클래스의 개념을 이해하면 "속성"과 "메서드"는 "변수"와 "함수"의 동의어이므로 이해하기가 매우 쉽습니다. 예, properties는 PHP 클래스의 변수이고 methods는 PHP 클래스의 함수입니다.

이제 각각의 속성과 메서드에 대해 알아보겠습니다.

경고: 속성을 직접 변경하는 것은 현명하지 않습니다. Codex에 따르면 WP_Query의 방법을 사용하여 상호 작용해야 합니다.

WP_Query 클래스의 속성

WP_Query 클래스의 속성이나 변수부터 시작해 보겠습니다.

쿼리 문자열: $query

이 속성은 $wp_query 개체에 전달된 쿼리를 저장합니다.

변수 배열 쿼리: $query_vars

이 속성은 $query 변수(및 해당 값)의 연관 배열을 저장합니다.

쿼리 개체: $queried_object

이 속성은 $post 对象(如果是 post 查询)或 $author 개체(작성자 쿼리인 경우)와 같은 현재 쿼리의 개체를 저장합니다.

쿼리 개체 ID: $queried_object_id

이 속성은 쿼리 개체의 ID를 저장합니다.

반환된 게시물 쿼리: $posts

이 속성은 쿼리에서 반환된 게시물을 저장합니다.

표시된 게시물 수: $post_count

이 속성은 현재 쿼리된 게시물 수를 저장합니다.

쿼리로 반환된 게시물 수: $found_posts

이 속성은 LIMIT 절을 포함하지 않는 SQL 쿼리의 게시물 수를 저장합니다.

페이지 수: $max_num_pages

이 속성은 $found_posts 除以 $posts_per_page$posts_per_page로 나누어 계산한 페이지 수를 저장합니다.

현재 게시물의 색인: $current_post

이 속성은 루프에서 현재 항목의 인덱스 번호를 저장합니다. 예를 들어 루프가 방금 시작된 경우 -1,并且通过 next_post() 메서드가 증가합니다.

현재 게시물: $post

이 속성은 현재 게시물을 저장합니다.

조건부 라벨 부울 값: $is_{conditional}

다음 속성은 부울 값으로 저장되며 현재 게시물 상태에 대한 정보를 제공합니다.

  • $is_single: 모든 게시물 유형("첨부 파일" 및 "페이지" 게시물 유형 제외)의 단일 게시물인지 확인하세요.
  • $is_page: 페이지인지 확인하세요.
  • $is_archive: 아카이브 페이지인지 확인하세요.
  • $is_preview: 게시물 미리보기인지 확인하세요.
  • $is_date: 날짜를 기준으로 보관된 페이지인지 확인하세요.
  • $is_year: 연도별 아카이브 페이지인지 확인하세요.
  • $is_month: 월 단위 아카이브 페이지인지 확인하세요.
  • $is_time: 페이지가 시간(시간, 분, 초) 기준으로 보관되는지 확인하세요.
  • $is_author: 작성자의 아카이브 페이지인지 확인하세요.
  • $is_category: 카테고리 아카이브 페이지인지 확인하세요.
  • $is_tag: 태그 아카이브 페이지인지 확인하세요.
  • $is_tax: 카테고리 아카이브 페이지인지 확인하세요.
  • $is_search: "검색 결과" 페이지인지 확인하세요.
  • $is_feed: 피드인지 확인하세요.
  • $is_comment_feed: 댓글 피드인지 확인하세요.
  • $is_trackback: 참고사항인지 확인하세요.
  • $is_home: 블로그 메인 페이지인지 확인하세요.
  • $is_404: 404 오류 페이지인지 확인하세요.
  • $is_comments_popup: 댓글 팝업인지 확인해보세요.
  • $is_admin: 관리자 패널인지 확인하세요.
  • $is_attachment: 첨부파일인지 확인하세요.
  • $is_singular: 모든 게시물 유형("첨부 파일" 및 "페이지" 게시물 유형 포함)의 단일 게시물인지 확인하세요.
  • $is_robots:检查是否是对 robots.txt 파일 쿼리.
  • $is_posts_page: "게시물 페이지"인지 확인하세요(관리자 패널의 "읽기 설정" 페이지에서 설정).
  • $is_paged: 홈페이지가 아닌 페이징 쿼리인지 확인하세요.

WP_Query 클래스의 메서드

이제 속성 작업이 완료되었으므로 클래스의 WP_Query 메서드(함수)로 넘어가겠습니다.

init()

이 방법은 단순히 개체를 초기화하고 모든 속성을 NULL0FALSE로 설정합니다.

parse_query( $query )

이 방법은 $query 属性来解析查询并填充所有其他属性(除了 $posts$post_count$post$current_post)을 사용합니다.

parse_query_vars()

이 방법은 쿼리 변수를 다시 구문 분석합니다.

get( $query_var )

이 메소드는 주어진 쿼리 변수를 가져옵니다.

设置( $query_var, $value )

이 방법은 주어진 쿼리 변수를 특정 값으로 설정합니다.

&get_posts()

이 메소드는 쿼리에서 요청한 게시물을 반환하고 $posts$post_count 속성을 채웁니다.

next_post()

이 메소드는 $current_post 索引并前进到 $posts의 다음 기사를 추가하고 현재 기사 객체를 반환합니다. (이 방법은 루프 내부에서 사용해야 제대로 작동합니다.)

the_post()

이 방법은 다음 기사의 데이터를 사용하여 전역 $post 변수를 설정합니다. (이 방법은 루프 내부에서 사용해야 제대로 작동합니다.)

have_posts()

이 메서드는 처리할 게시물이 남아 있는지 확인하고, 없으면 FALSE를 반환합니다. (이 방법은 루프가 제대로 작동하기 전에 사용해야 합니다.)

rewind_posts()

이 방법은 $current_post$current_post$post 속성을 재설정합니다.

&query( $query )

이 메서드는 parse_query()get_posts(),并返回 get_posts()의 결과인 두 가지 형제 메서드를 호출합니다.

get_queried_object()

이 메서드는 쿼리된 개체를 반환합니다. (아직 설정하지 않은 경우 $queried_object를 설정하세요.)

get_queried_object_id()

이 메소드는 위의 메소드와 유사하며 쿼리 객체의 ID($queried_object_id)를 반환합니다.

빠른 팁: 메서드 앞에 & 기호가 있으면 해당 메서드가 참조로 반환된다는 의미입니다.

오늘의 요약

클래스에서 "속성"과 "메서드"가 무엇을 의미하는지 명확하게 설명할 수 있었으면 좋겠습니다. WP_Query 클래스의 속성과 메서드의 목적을 이해한다면 꽤 잘하고 있다고 말할 수 있습니다!

이 기사에 추가할 내용이 있나요? 아래 댓글 섹션에서 여러분의 생각을 공유해 주세요. 이 기사가 마음에 들었다면 친구들과 공유하는 것을 잊지 마세요.

이 시리즈의 다음 부분에서 만나요!

위 내용은 WP_Query의 강력한 활용: 속성 및 메서드 탐색의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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