目录
回顾 WP_Query 中的参数如何工作
编写你的参数
作者参数
搜索参数
密码参数
权限参数
缓存参数
返回字段参数
摘要
首页 后端开发 php教程 WP_Query参数:作者、搜索、密码和权限

WP_Query参数:作者、搜索、密码和权限

Sep 03, 2023 am 08:41 AM
密码 权限 搜索 wp_query 作者

到目前为止,在本系列中,您已经了解了可以与 WP_Query 类一起使用的参数选择,以按帖子类型、类别、标签、元数据、日期、状态等选择帖子更多。

在关于 WP_Query 参数的最后一个教程中,我将介绍一些不常用的参数,这些参数可以为您的查询提供更大的灵活性。

我们将在此处介绍的参数用于:

  • 作者
  • 搜索
  • 密码
  • 权限
  • caching
  • 返回字段

在开始之前,让我们快速回顾一下如何使用 WP_Query 编写参数。

回顾 WP_Query 中的参数如何工作

当您在主题或插件中编写 WP_Query 时,您需要包含四个主要元素:

  • 查询的参数,使用本教程将介绍的参数
  • 查询本身
  • 循环
  • 结束:关闭 if 和 while 标签并重置发布数据

实际上,这将类似于以下内容:

<?php

$args = array(
    // Arguments for your query.
);

// Custom query.
$query = new WP_Query( $args );

// Check that we have query results.
if ( $query->have_posts() ) {

    // Start looping over the query results.
    while ( $query->have_posts() ) {

        $query->the_post();

        // Contents of the queried post results go here.

    }

}

// Restore original post data.
wp_reset_postdata();

?>
登录后复制

这些参数告诉 WordPress 从数据库中获取哪些数据,我将在此处介绍这些数据。所以我们在这里关注的是代码的第一部分:

$args = array(
    // Arguments for your query.
);
登录后复制

如您所见,参数包含在一个数组中。在学习本教程时,您将学习如何对它们进行编码。

编写你的参数

数组中的参数有一种具体的编码方式,如下:

$args = array(
    'parameter1' => 'value',
    'parameter2' => 'value',
    'parameter3' => 'value'
);
登录后复制

必须将参数及其值括在单引号中,在它们之间使用 =>,并用逗号分隔它们。如果您犯了这个错误,WordPress 可能不会将所有参数添加到查询中,否则您可能会看到白屏。

作者参数

有四个参数可以用于按作者查询:

  • author (int):使用作者 ID
  • author_name (字符串):使用“user_nicename”(不是名称)
  • author__in (数组):使用作者 ID
  • author__not_in (数组)

第一个 author 允许您通过提供作者 ID 来查询一个或多个作者的帖子:

$args = array(
    'author' => '2'
);
登录后复制

上面的代码查询ID为2的作者的所有帖子。

您还可以使用字符串来查询多个作者的帖子:

$args = array(
    'author' => '1, 2'
);
登录后复制

如果要按名称查询,可以使用 author_name 参数:

$args = array(
    'author_name' => 'rachelmccollin'
);
登录后复制

此参数采用数据库中 user_nicename 字段的值作为其参数,该值在用户管理屏幕中显示为昵称:

WP_Query参数:作者、搜索、密码和权限

请注意,由于用户可以编辑此内容,因此使用 author 会更安全参数(如果您认为您的用户可能会更改它)。

您还可以查询一系列作者的帖子:

$args = array(
    'author__in' => array(
        '1',
        '2'
    )
);
登录后复制

上面将查询两位作者的帖子: ID 为 112 的作者,给出的结果与我在 author 的作者,给出的结果与我在 author 参数上面。

最后,您可以使用 author__not_in 参数排除一位或多位作者的帖子。下面的参数查询除作者 1 参数排除一位或多位作者的帖子。下面的参数查询除作者 1 之外的所有帖子:

$args = array(
    'author__not_in' => array( '1' )
);
登录后复制

或者您可以排除多个作者:

$args = array(
    'author__not_in' => array(
        '1',
        '2'
    )
);
登录后复制

或者,您可以使用 author 参数,并在作者 ID 前面使用减号来排除作者:

$args = array(
    'author' => '-2'
);
登录后复制

搜索参数

搜索的参数只有一个,就是s。使用它来查询与搜索词匹配的帖子。例如,要查询包含关键字“我最喜欢的食物”的帖子,您可以使用:

$args = array(
    's' => 'my favorite food'
);
登录后复制

例如,您可能会发现这对于搜索具有相似关键字的相关帖子很有用。

密码参数

您可以使用两个密码参数来查询有或没有密码保护的帖子:

  • has_password (bool)
  • post_password (字符串)

第一个参数 has_password 允许您查询有或没有密码保护的帖子。因此,要查询受密码保护的帖子:

$args = array(
    'has_password' => true
);
登录后复制

对于没有密码的帖子:

$args = array(
    'has_password' => false
);
登录后复制

您还可以通过密码本身进行查询,使用 post_password 参数:

$args = array(
    'post_password' => 'mypassword'
);
登录后复制

权限参数

权限只有一个参数,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

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

win11提示若要继续,请输入管理员用户名和密码怎么解决? win11提示若要继续,请输入管理员用户名和密码怎么解决? Apr 11, 2024 am 09:10 AM

当使用Win11系统时,有时候会遇到需要输入管理员用户名和密码的提示,本文将探讨在遇到这种情况时应该如何处理。方法一:1、点击【Windows徽标】,然后按【Shift+重启】进入安全模式;或者这样进入安全模式:点击开始菜单,选择设置。选择“更新和安全”;选择“恢复”中的“立即重启”;重启进入选项后选择——疑难解答——高级选项——启动设置—&mdash

一键开启root权限(快速获取root权限) 一键开启root权限(快速获取root权限) Jun 02, 2024 pm 05:32 PM

可以让用户对系统进行更深入的操作和定制,root权限是一种管理员权限,在Android系统中。获取root权限通常需要一系列繁琐的步骤,对于普通用户来说可能不太友好、然而。通过一键开启root权限,本文将介绍一种简单而有效的方法,帮助用户轻松获取系统权限。了解root权限的重要性及风险拥有更大的自由度,root权限可以让用户完全控制手机系统。加强安全控制等,定制主题、用户可以删除预装应用。比如误删系统文件导致系统崩溃,过度使用root权限也存在风险、不慎安装恶意软件等,然而。在使用root权限前

如何使用手机设置路由器WiFi密码(以手机为工具) 如何使用手机设置路由器WiFi密码(以手机为工具) Apr 24, 2024 pm 06:04 PM

无线网络已经成为人们生活中不可或缺的一部分、在当今数字化的世界中。保护个人无线网络的安全性却显得尤为重要、然而。设置一个强密码是确保你的WiFi网络不被他人侵入的关键。保障你的网络安全,本文将详细介绍如何使用手机来修改路由器WiFi密码。1.打开路由器管理页面-在手机浏览器中打开路由器管理页面、通过输入路由器的默认IP地址。2.输入管理员用户名和密码-以获得访问权限,在登录页面中输入正确的管理员用户名和密码。3.导航到无线设置页面-查找并点击进入无线设置页面,在路由器管理页面中。4.找到当前Wi

密码不正确,小心BitLocker警告 密码不正确,小心BitLocker警告 Mar 26, 2024 am 09:41 AM

本文将探讨如何解决密码错误的问题,特别是在处理BitLocker警告时需要小心。当在BitLocker中多次输入错误密码以解锁驱动器时,就会触发这个警告。通常,这个警告出现是因为系统设定了限制错误登录尝试的策略(通常是允许3次登录尝试)。在这种情况下,用户会收到相应的警告信息。完整的警告信息如下:输入的密码不正确,请注意-连续输入错误密码会导致账户被锁定,这是为了保护您的数据安全。如果需要解锁账户,您将需要使用BitLocker恢复密钥。密码不正确,小心BitLocker警告当您登录计算机时收到

手机修改wifi密码教程(简单操作) 手机修改wifi密码教程(简单操作) Apr 26, 2024 pm 06:25 PM

无线网络已经成为我们生活中不可或缺的一部分、随着互联网的快速发展。为了保护个人信息和网络安全,定期更改wifi密码是非常重要的、然而。帮助大家更好地保护家庭网络安全,本文将为大家介绍如何利用手机修改wifi密码的详细教程。1.了解wifi密码的重要性wifi密码是保护个人信息和网络安全的道防线,在网络时代、了解其重要性可以更好地理解为什么需要定期修改密码。2.确认手机连接到wifi首先确保手机已连接到要修改密码的wifi网络上,在修改wifi密码之前。3.打开手机设置菜单进入手机的设置菜单、在手

wps表格找不到正在搜索的数据,请检查搜索选项位置 wps表格找不到正在搜索的数据,请检查搜索选项位置 Mar 19, 2024 pm 10:13 PM

智能为主导的时代,办公软件也普及开来,Wps表格由于它的灵活性被广大的办公人员采用。在工作中要求我们不只是要学会简单的表格制作和文字录入,我们要掌握更多的操作技能,才能完成实际工作中的任务,有数据的报表,运用表格更方便更清楚更准确。今天我们给大家带来的课程是:wps表格找不到正在搜索的数据,为什么请检查搜索选项位置?1、首先选中Excel表格,双击打开。然后在该界面中,选中所有的单元格。  2、然后在该界面中,点击顶部工具栏里“文件”里的“编辑”选项。  3、其次在该界面中,点击顶部工具栏里的“

Win10密码不满足密码策略要求咋办? 电脑密码不满足策略要求解决办法 Win10密码不满足密码策略要求咋办? 电脑密码不满足策略要求解决办法 Jun 25, 2024 pm 04:59 PM

在Windows10系统中,密码策略是一套安全规则,确保用户设置的密码符合一定的强度和复杂性要求,而系统提示您的密码不满足密码策略要求则通常意味着您的密码没有达到微软设定的复杂度、长度或字符种类的标准,那么这种情况要如何避免呢?用户们可以直接的找到本地计算机策略下的密码策略来进行操作就可以了,下面就一起来看看吧。不符合密码策略规范的解决方法修改密码长度:根据密码策略要求,我们可以尝试增加密码的长度,比如将原来的6位密码改为8位或更长。添加特殊字符:密码策略通常要求包含特殊字符,如@、#、$等。我

如何给excel设置密码 如何给excel设置密码 Mar 21, 2024 am 09:00 AM

前几天表弟找我诉苦说用excel辛苦做了一大堆数据,结果后来被同事给修改了,当时不知道情况,发给老板后被臭骂了一顿。这确实挺让人无奈的,有的人就是看你不顺眼,就是想故意整你,离开学校步入社会以后,你会发现背后捅刀子的人越来越多。除了安慰表弟几句以外,我还给了表弟一个意见,如果怕以后再遇到这样的事情,那就把excel表格设置密码,除了你可以打开以外,别人谁都打不开。广大网友们,如果你也怕自己的excel表格被别人偷偷修改,也应该设置密码的。excel密码表格如何设置密码?跟我一起来了解一下吧!1.

See all articles