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
字段的值作为其参数,该值在用户管理屏幕中显示为昵称:
请注意,由于用户可以编辑此内容,因此使用 author
会更安全参数(如果您认为您的用户可能会更改它)。
您还可以查询一系列作者的帖子:
$args = array( 'author__in' => array( '1', '2' ) );
上面将查询两位作者的帖子: ID 为 1
和 1
和 2
的作者,给出的结果与我在 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中文网其他相关文章!

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

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

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

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

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

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

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

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

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

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

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