찾다
백엔드 개발PHP 튜토리얼WP_Query 매개변수: 작성자, 검색, 비밀번호 및 권한

WP_Query 매개변수: 작성자, 검색, 비밀번호 및 권한

Sep 03, 2023 am 08:41 AM
비밀번호권한찾다wp_query작가

이 시리즈에서는 지금까지 게시물 유형, 카테고리, 태그, 메타데이터, 날짜, 상태 등을 기준으로 게시물을 선택하기 위해 WP_Query 클래스와 함께 사용할 수 있는 매개변수 선택에 대해 배웠습니다.

WP_Query 매개변수에 대한 마지막 튜토리얼에서는 쿼리에 더 많은 유연성을 제공할 수 있는 덜 일반적으로 사용되는 매개변수를 다루겠습니다.

여기서 소개하는 매개변수는 다음 용도로 사용됩니다.

  • 작가
  • 검색
  • 비밀번호
  • 권한
  • 캐싱
  • 반환 필드

시작하기 전에 WP_Query를 사용하여 매개변수를 작성하는 방법을 빠르게 살펴보겠습니다.

WP_Query의 매개변수 작동 방식 검토

테마나 플러그인에 WP_Query를 작성할 때 다음 네 가지 주요 요소를 포함해야 합니다.

  • 쿼리 매개변수, 이 튜토리얼에서 소개할 매개변수를 사용하세요
  • 쿼리 자체
  • 루프
  • 끝: if 및 while 태그를 닫고 게시물 데이터를 재설정

실제로는 다음과 같습니다.

으아악

이 매개변수는 WordPress에 데이터베이스에서 가져올 데이터를 알려줍니다. 여기서는 이에 대해 다루겠습니다. 그래서 여기서 우리가 집중하고 있는 것은 코드의 첫 번째 부분입니다:

으아악

보시다시피 매개변수는 배열에 포함되어 있습니다. 이 튜토리얼을 따라가다 보면 코딩 방법을 배우게 됩니다.

매개변수 쓰기

배열의 매개변수에는 다음과 같은 특정 인코딩 방법이 있습니다.

으아악

매개변수와 해당 값은 작은따옴표로 묶고, 사이에 =>를 사용하고, 쉼표로 구분해야 합니다. 이 실수를 하면 WordPress에서 쿼리에 모든 매개변수를 추가하지 못할 수 있습니다. 그렇지 않으면 흰색 화면이 나타날 수 있습니다.

작성자 매개변수

작성자별로 쿼리하는 데 사용할 수 있는 매개변수는 4개입니다.

  • author(int): 작성자 ID 사용
  • author_name(String): "user_nicename"(이름 아님) 사용
  • author__in(array): 작성자 ID 사용
  • author__not_in (배열)

첫 번째 author를 사용하면 작성자 ID를 제공하여 한 명 이상의 작성자가 게시한 게시물을 쿼리할 수 있습니다.

으아악

위 코드는 ID가 2인 작성자의 모든 게시물을 쿼리합니다.

문자열을 사용하여 여러 작성자의 게시물을 쿼리할 수도 있습니다.

으아악

이름으로 쿼리하려면 author_name 매개변수를 사용할 수 있습니다.

으아악

이 매개변수는 사용자 관리 화면에서 별명으로 표시되는 데이터베이스의 user_nicename 필드 값을 매개변수로 사용합니다.

WP_Query 매개변수: 작성자, 검색, 비밀번호 및 권한

사용자가 편집할 수 있으므로 author 매개변수를 사용하는 것이 더 안전하다는 점에 유의하세요(사용자가 변경할 수 있다고 생각되는 경우).

다음에서 여러 작성자의 게시물을 확인할 수도 있습니다.

으아악

위는 두 명의 작성자의 게시물을 쿼리합니다. ID가 112 的作者,给出的结果与我在 author인 작성자는 author에서 사용한 문자열과 동일한 결과를 제공합니다. 위의 매개변수입니다.

마지막으로 author__not_in 参数排除一位或多位作者的帖子。下面的参数查询除作者 1 매개변수를 사용하여 한 명 이상의 작성자의 게시물을 제외할 수 있습니다. 다음 매개변수는 작성자 1을 제외한 모든 게시물을 쿼리합니다.

으아악

또는 여러 저자를 제외할 수도 있습니다:

으아악

또는 author 매개변수를 사용하고 작성자 ID 앞에 빼기 기호를 사용하여 작성자를 제외할 수 있습니다.

으아악

검색 매개변수

검색 매개변수는 s 단 하나뿐입니다. 검색어와 일치하는 게시물을 쿼리하려면 이를 사용하세요. 예를 들어 "내가 가장 좋아하는 음식"이라는 키워드가 포함된 게시물을 쿼리하려면 다음을 사용합니다.

으아악

예를 들어 유사한 키워드가 포함된 관련 게시물을 검색하는 데 유용할 수 있습니다.

비밀번호 매개변수

두 가지 비밀번호 매개변수를 사용하여 비밀번호 보호 여부에 관계없이 게시물을 쿼리할 수 있습니다.

  • has_password (bool)
  • post_password (문자열)

첫 번째 매개변수 has_password를 사용하면 비밀번호 보호 여부에 관계없이 게시물을 쿼리할 수 있습니다. 따라서 비밀번호로 보호된 게시물을 쿼리하려면:

으아악

비밀번호가 없는 게시물의 경우:

으아악

post_password 매개변수를 사용하여 비밀번호 자체로 쿼리할 수도 있습니다.

으아악

권한 매개변수

권한에는 다른 매개변수와 함께 사용되는 perm,用于查询当前用户有权限阅读的帖子。它采用 'readable' 값이라는 하나의 매개변수만 있습니다.

因此,要查询受密码保护的帖子并仅在用户具有适当权限时才显示它们,您可以使用以下命令:

$args = array(
    'has_password' => true,
    'perm' => 'readable'
);

或者,如果当前用户有权查看草稿帖子,则可以使用以下命令:

$args = array(
    'post_status' => 'draft',
    'perm' => 'readable'
);

缓存参数

共有三个缓存参数,它们会阻止查询检索到的数据添加到缓存中:

  • cache_results (boolean):帖子信息缓存
  • update_post_meta_cache (boolean):发布元信息缓存
  • update_post_term_cache (boolean):帖子术语信息缓存

这三个选项的默认值都是 true:如果您希望将数据添加到缓存中,则不需要使用它们。

因此,要显示 product 帖子类型的所有帖子,但不将帖子信息添加到缓存中,您可以使用以下命令:

$args = array(
    'post_type' => 'product',
    'cache_results' => false
);

通常您不应该使用这些参数,因为将发布数据添加到缓存是一个很好的做法。但是,您有时可能希望检索帖子,以便只使用一些帖子数据,在这种情况下,您不需要缓存中的其余帖子数据。例如,当您只想输出带有链接的帖子标题列表时,在这种情况下,您不需要将帖子术语数据或元数据添加到缓存中:

$args = array(
    'post_type' => 'product',
    'update_post_meta_cache' => false,
    'update_post_term_cache' => false
);

返回字段参数

您可以使用 fields 参数来指定从查询中返回哪些字段。这可以节省从数据库中的字段返回的数据,而在循环中输出数据时不需要这些数据。

默认情况下是返回所有字段,但是您有两个选项可以使用 fields 参数来限制这一点。首先,'ids' 参数:

$args = array(
    'fields' => 'ids'
);

这只会返回帖子 ID 数组,不会返回其他字段。如果您想在循环中输出任何内容(例如帖子标题),则必须使用 get_the_title ($post->ID); 等函数来输出标题,这将处理事情的方式很冗长。

您可以使用的另一个参数获取帖子 ID 与子帖子 ID 的关联数组:

$args = array(
    'fields' => 'id=>parent'
);

您可以使用它根据您的其他参数及其子参数查询帖子。

摘要

WP_Query 系列的这一部分介绍了 WP_Query 类的最终参数集。您可以使用它们按作者、密码保护状态或密码本身和搜索词查询帖子,并设置是否将查询结果添加到缓存以及查询返回哪些字段。

在本系列的下一部分中,您将看到一些在主题或插件中使用 WP_Query 的有效示例。

위 내용은 WP_Query 매개변수: 작성자, 검색, 비밀번호 및 권한의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
PHP 세션이 실패 할 수있는 몇 가지 일반적인 문제는 무엇입니까?PHP 세션이 실패 할 수있는 몇 가지 일반적인 문제는 무엇입니까?Apr 25, 2025 am 12:16 AM

phpsession 실패 이유에는 구성 오류, 쿠키 문제 및 세션 만료가 포함됩니다. 1. 구성 오류 : 올바른 세션을 확인하고 설정합니다. 2. 쿠키 문제 : 쿠키가 올바르게 설정되어 있는지 확인하십시오. 3. 세션 만료 : 세션 시간을 연장하기 위해 세션을 조정합니다 .GC_MAXLIFETIME 값을 조정하십시오.

PHP의 세션 관련 문제를 어떻게 디버그합니까?PHP의 세션 관련 문제를 어떻게 디버그합니까?Apr 25, 2025 am 12:12 AM

PHP에서 세션 문제를 디버그하는 방법 : 1. 세션이 올바르게 시작되었는지 확인하십시오. 2. 세션 ID의 전달을 확인하십시오. 3. 세션 데이터의 저장 및 읽기를 확인하십시오. 4. 서버 구성을 확인하십시오. 세션 ID 및 데이터를 출력, 세션 파일 컨텐츠보기 등을 통해 세션 관련 문제를 효과적으로 진단하고 해결할 수 있습니다.

session_start ()가 여러 번 호출되면 어떻게됩니까?session_start ()가 여러 번 호출되면 어떻게됩니까?Apr 25, 2025 am 12:06 AM

Session_Start ()로 여러 통화를하면 경고 메시지와 가능한 데이터 덮어 쓰기가 발생합니다. 1) PHP는 세션이 시작되었다는 경고를 발행합니다. 2) 세션 데이터의 예상치 못한 덮어 쓰기를 유발할 수 있습니다. 3) Session_status ()를 사용하여 반복 통화를 피하기 위해 세션 상태를 확인하십시오.

PHP에서 세션 수명을 어떻게 구성합니까?PHP에서 세션 수명을 어떻게 구성합니까?Apr 25, 2025 am 12:05 AM

SESSION.GC_MAXLIFETIME 및 SESSION.COOKIE_LIFETIME을 설정하여 PHP에서 세션 수명을 구성 할 수 있습니다. 1) SESSION.GC_MAXLIFETIME 서버 측 세션 데이터의 생존 시간을 제어합니다. 2) 세션 .Cookie_Lifetime 클라이언트 쿠키의 수명주기를 제어합니다. 0으로 설정하면 브라우저가 닫히면 쿠키가 만료됩니다.

세션을 저장하기 위해 데이터베이스를 사용하면 어떤 장점이 있습니까?세션을 저장하기 위해 데이터베이스를 사용하면 어떤 장점이 있습니까?Apr 24, 2025 am 12:16 AM

데이터베이스 스토리지 세션 사용의 주요 장점에는 지속성, 확장 성 및 보안이 포함됩니다. 1. 지속성 : 서버가 다시 시작 되더라도 세션 데이터는 변경되지 않아도됩니다. 2. 확장 성 : 분산 시스템에 적용하여 세션 데이터가 여러 서버간에 동기화되도록합니다. 3. 보안 : 데이터베이스는 민감한 정보를 보호하기 위해 암호화 된 스토리지를 제공합니다.

PHP에서 사용자 정의 세션 처리를 어떻게 구현합니까?PHP에서 사용자 정의 세션 처리를 어떻게 구현합니까?Apr 24, 2025 am 12:16 AM

SessionHandlerInterface 인터페이스를 구현하여 PHP에서 사용자 정의 세션 처리 구현을 수행 할 수 있습니다. 특정 단계에는 다음이 포함됩니다. 1) CustomsessionHandler와 같은 SessionHandlerInterface를 구현하는 클래스 만들기; 2) 인터페이스의 방법 (예 : Open, Close, Read, Write, Despare, GC)의 수명주기 및 세션 데이터의 저장 방법을 정의하기 위해 방법을 다시 작성합니다. 3) PHP 스크립트에 사용자 정의 세션 프로세서를 등록하고 세션을 시작하십시오. 이를 통해 MySQL 및 Redis와 같은 미디어에 데이터를 저장하여 성능, 보안 및 확장 성을 향상시킬 수 있습니다.

세션 ID 란 무엇입니까?세션 ID 란 무엇입니까?Apr 24, 2025 am 12:13 AM

SessionId는 웹 애플리케이션에 사용되는 메커니즘으로 사용자 세션 상태를 추적합니다. 1. 사용자와 서버 간의 여러 상호 작용 중에 사용자의 신원 정보를 유지하는 데 사용되는 무작위로 생성 된 문자열입니다. 2. 서버는 쿠키 또는 URL 매개 변수를 통해 클라이언트로 생성하여 보낸다. 3. 생성은 일반적으로 임의의 알고리즘을 사용하여 독창성과 예측 불가능 성을 보장합니다. 4. 실제 개발에서 Redis와 같은 메모리 내 데이터베이스를 사용하여 세션 데이터를 저장하여 성능 및 보안을 향상시킬 수 있습니다.

무국적 환경 (예 : API)에서 세션을 어떻게 처리합니까?무국적 환경 (예 : API)에서 세션을 어떻게 처리합니까?Apr 24, 2025 am 12:12 AM

JWT 또는 쿠키를 사용하여 API와 같은 무국적 환경에서 세션을 관리 할 수 ​​있습니다. 1. JWT는 무국적자 및 확장 성에 적합하지만 빅 데이터와 관련하여 크기가 크다. 2. 쿠키는보다 전통적이고 구현하기 쉽지만 보안을 보장하기 위해주의해서 구성해야합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구