搜索
首页后端开发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
如何利用PHP函数进行搜索和过滤数据?如何利用PHP函数进行搜索和过滤数据?Jul 24, 2023 am 08:01 AM

如何利用PHP函数进行搜索和过滤数据?在使用PHP进行开发的过程中,经常需要对数据进行搜索和过滤。PHP提供了丰富的函数和方法来帮助我们实现这些操作。本文将介绍一些常用的PHP函数和技巧,帮助你高效地进行数据的搜索和过滤。字符串搜索PHP中常用的字符串搜索函数是strpos()和strstr()。strpos()用于查找字符串中某个子串的位置,如果存在,则返

Laravel开发:如何使用Laravel Scout实现全文搜索?Laravel开发:如何使用Laravel Scout实现全文搜索?Jun 14, 2023 am 10:14 AM

Laravel开发:如何使用LaravelScout实现全文搜索?LaravelScout是一个Laravel的全文搜索解决方案,它是一个流行的开源软件,它可以让开发者轻松地实现高效的全文搜索功能。在这篇文章中,我们将介绍如何使用LaravelScout来实现全文搜索功能。安装LaravelScout首先,我们需要安装LaravelScout。可以

PHP如何对接淘宝商品搜索API文档PHP如何对接淘宝商品搜索API文档Jul 01, 2023 pm 10:16 PM

PHP如何对接淘宝商品搜索API文档淘宝是中国最大的电子商务平台之一,拥有庞大的商品库存和用户群体。对于开发者来说,通过对接淘宝的API接口,可以获取商品信息、推广活动以及进行交易等功能,从而实现个性化的商业应用。本文将介绍如何使用PHP语言对接淘宝商品搜索API,帮助开发者快速构建自己的电商应用。第一步:注册成为淘宝开发者在开始之前,需要先注册成为淘宝开发

如何使用PHP ZipArchive实现对压缩包的文件过滤和搜索?如何使用PHP ZipArchive实现对压缩包的文件过滤和搜索?Jul 23, 2023 pm 08:34 PM

如何使用PHPZipArchive实现对压缩包的文件过滤和搜索?概述在Web开发中,我们经常需要对压缩包文件进行处理,包括过滤和搜索。PHP提供了ZipArchive扩展,它使我们能够轻松地对压缩包进行操作。本文将教您如何使用PHPZipArchive扩展来实现对压缩包文件的过滤和搜索功能。步骤首先,确保您的PHP环境已启用ZipArchive扩展。您可

如何在uniapp中实现关键字搜索如何在uniapp中实现关键字搜索Jul 05, 2023 am 08:53 AM

如何在uniapp中实现关键字搜索在当前信息爆炸的时代,搜索已经成为我们获取所需信息的重要方法之一。在移动端应用开发中,如何在uniapp中实现关键字搜索,提供用户便捷的搜索功能,是一个非常重要的技术挑战。本文将介绍在uniapp中实现关键字搜索的方法,并提供代码示例供参考。一、创建搜索框组件首先,我们需要在uniapp中创建一个搜索框组件,用于用户输入关键

UniApp实现搜索功能的配置与实现技巧UniApp实现搜索功能的配置与实现技巧Jul 04, 2023 pm 05:15 PM

UniApp实现搜索功能的配置与实现技巧随着移动互联网的迅速发展,搜索功能已经成为了几乎每一个应用都必备的功能之一。而对于基于Vue.js的多平台应用开发框架UniApp来说,实现搜索功能也变得更加简单和高效。本文将介绍UniApp中搜索功能的配置与实现技巧,并且附带代码示例,帮助读者快速上手。一、配置搜索功能在uni-app项目的页面文件夹中创建一个搜索页

如何在Java后端功能开发中实现搜索功能?如何在Java后端功能开发中实现搜索功能?Aug 05, 2023 am 11:09 AM

如何在Java后端功能开发中实现搜索功能?搜索功能是现代应用程序中必不可少的一个重要功能。无论是在电商平台中搜索商品,还是在社交媒体中搜索朋友,搜索功能都为用户提供了便捷和高效的信息获取方式。在Java后端开发中,我们可以利用各种技术和库来实现搜索功能。本文将介绍一种常用的实现搜索功能的方法,并以Java语言为例给出代码示例。在Java后端开发中,我们通常会

在Go语言中使用Elasticsearch实现高效的搜索在Go语言中使用Elasticsearch实现高效的搜索Jun 15, 2023 pm 09:01 PM

随着大数据时代的到来,数据的存储和检索已经成为了我们面临的一个重要问题。Elasticsearch是一个开源的分布式实时搜索和分析引擎,它可以通过快速反向索引来搜索大量的数据,提供了高效的全文搜索、聚合分析、实时监控、自动补全和数据可视化等功能,在实际的应用场景中有着广泛的应用。同时,Go语言作为一门快速、静态类型的编程语言,也广泛应用于后端服务开发中。在

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)