掌握WP_User_Query

在前面所有这些部分之后,我们已经完成了WP_Query类的学习,但这并不意味着我们已经完成了该系列! 现在该开会WP_Query的兄弟和姐妹课程了: WP_User_QueryWP_Comment_QueryWP_Meta_QueryWP_Date_Query

在这一部分中,我们将学习使用WP_User_Query类在WordPress中查询用户。

让我们开始!

什么是WP_User_Query?

可能仅通过读取WP_User_Query的名称即可了解其WP_User_Query 。 是的,没有人希望看到WP_User_Query与“标签云”小部件一起工作-这是一个类,用于在WordPress中运行有关用户的查询。

让我们看看WordPress Codex对WP_User_Query类的WP_User_Query

WP_User_Query是在wp-includes/user.php定义的类,它允许查询WordPress数据库表' wp_users '和' wp_usermeta '。 此类是在版本3.1中引入的,因此不建议使用WP_User_Search类。

本质上,我们可以说“ WP_User_Query是用户的WP_Query ”。 它与wp_userswp_usermeta来查询用户及其元数据。

现在,让我们看看WP_User_Query并了解WP_User_Query的属性,方法和参数。 然后,我们将通过一些示例来了解其工作原理。

快速提示:我们在介绍WP_Query类的属性和方法时已经介绍了这一点,但让我再次提醒一下:“属性”和“方法”仅是在内部定义的“变量”和“函数”一个PHP类。

WP_User_Query的属性

WP_User_Query类中只有七个属性需要学习。 请记住:这些应该被用来改变它们的值。 您可以获取它们的值,但是最好不要更改它们。

$query_vars

此属性存储查询变量及其值的关联数组。

$results

此属性具有查询的找到的项目数(在这种情况下为用户)。

$query_fields

与以下属性类似,此属性存储返回字段的SQL子句。

$query_from

此属性存储查询的FROM子句。

$query_where

此属性存储查询的WHERE子句。

$query_orderby

此属性存储查询的ORDERBY子句,并用于对返回的用户列表进行排序。

$query_limit

此属性存储查询的LIMIT子句,用于限制返回的用户数。

WP_User_Query的方法

还记得WP_Query类的方法吗? 好的,此类只有四个方法,它们的工作方式与WP_Query的方法WP_Query 。 让我们快速了解为什么每个人都存在。

get()方法

此方法只是从查询中获取查询变量。

set()方法

与上面的相反,此方法设置查询变量而不是获取它。

get_results()方法

WP_Query不同, WP_User_Query类不适用于“循环”。 相反,您需要使用get_results()方法来获取查询结果并对其进行处理。

get_total()方法

这个小方法返回查询的项目总数(用户)。

WP_User_Query的参数

WP_Query类类似, WP_User_Query具有您需要了解的参数。 不过,虽然WP_Query有大量的参数(超过50个!), WP_User_Query只有17参数担心和他们很相似,在那些WP_Query ,所以如果你熟悉的,它不应该学习这些会很麻烦。

  • blog_id :一个整数,用于在多站点网络中指定博客的ID。 默认为当前博客。
  • role :声明用户角色的字符串。 接受subscriberauthorcontributorauthoreditoradministrator以及任何自定义创建的用户角色。
  • include :要包含在查询中的用户ID数组。
  • exclude :要从查询中排除的用户ID数组。
  • search :在wp_users表的字段中search的字符串值。
  • search_columnswp_users表的列的数组。 接受IDuser_loginuser_urluser_emailuser_nicename
  • orderby :用于说明如何对返回的用户进行排序的字符串。 接受IDdisplay_namename / user_namelogin / user_loginnicename / user_nicenameemail / user_emailurl / user_urlregistered / user_registeredpost_countmeta_value 。 默认为login
  • order :将字符串设置为升序( ASC )或降序( DESC )的字符串。
  • offset :一个整数,用于指定要跳过的用户数。
  • number :一个整数,用于设置要返回的用户数。
  • count_total :一个布尔值( TRUE / FALSE ),用于声明是否对找到的用户总数进行计数。
  • fields :一个字符串或数组,用于确定要从wp_users表中返回哪些字段。
  • who :一个字符串( authorsall ,这是默认值),用于说明要查询的用户。
  • meta_key :用来声明自定义用户元字段密钥的字符串。
  • meta_value :一个字符串,用于声明自定义用户元字段值。
  • meta_compare :一个字符串,用于设置运算符以测试'meta_value'参数。 接受'=''!=''>''>=''<''<=''LIKE''NOT LIKE''IN''NOT IN''BETWEEN''NOT BETWEEN''EXISTS''NOT EXISTS' 。 默认为'='
  • meta_query :一个数组,用于创建一个完整的元数据查询,使用类似于上面的键:
    • key :用于设置自定义字段键的字符串。
    • value :用于设置一个或多个自定义字段值的字符串或数组。
    • compare :用于设置比较运算符的字符串。 接受与上述meta_compare相同的值。
    • type :设置自定义字段类型的字符串。 接受NUMERICBINARYCHARDATEDATETIMEDECIMALSIGNEDTIMEUNSIGNED 。 默认为CHAR

尝试一些示例的WP_User_Query

现在我们已经了解了WP_User_Query工作原理,让我们做一些例子来学习如何使用它。

列出除Lisa以外的所有编辑者

假设您想向读者列出您的编辑者,但是您要记住,您的一位编辑者Lisa已同意与您合作,但要匿名,因此您需要将其排除在“编辑者”列表之外。 这是构造查询的方式:

<?php

// Add Lisa's user id,  14, in an array.
$exclude_list = array( 14 );

$args = array(
    'role' => 'Editor',
    'exclude' => $exclude_list
);

// Custom query.
$my_user_query = new WP_User_Query( $args );

// Get query results.
$editors = $my_user_query->get_results();

// Check for editors
if ( ! empty( $editors ) ) {

    echo '<ul class="editors-list">';

        // Loop over editors.
        foreach ( $editors as $editor ) {
    
            // Get each editor's data.
            $editor_info = get_userdata( $editor->ID );
    
            // Show editor's name.
            echo '<li>' . $editor_info->display_name . '</li>';
    
        }

    echo '</ul>';

} else {

    // Display "no editors found" message.
    echo __( 'No editors found!', 'tutsplus' );

}

?>

在作者中搜索Gmail用户

假设您要收集使用Gmail地址的作者的电子邮件地址。 这是您的工作:

<?php

// Setup arguments.
$args = array(
    // Search for authors only.
    'who' => 'authors',
    // Search for email addresses ending with `@gmail.com`.
    'search' => '*@gmail.com',
    // Search the `email` field only.
    'search_columns' => array( 'email' ),
    // Return the `email` field only.
    'fields' => 'email'
);

// Custom query.
$my_user_query = new WP_User_Query( $args );

// Get query results.
$gmailers = $my_user_query->get_results();

?>

包装一切

如您所见, WP_QueryWP_User_Query之间只有一些区别,并且这些区别实际上使WP_User_Query更易于理解。 我希望我能帮助您了解这一整洁的WordPress类。

您对本文有什么要补充的吗? 在下面的评论部分与我们分享您的想法。 而且,如果您喜欢这篇文章,请不要忘记与您的朋友分享。

在本系列的下一部分见!

如果您对一些脚本和插件感兴趣,这些脚本和插件可以为您提供用户和会员系统的更高级功能,那么Envato Market上有很多有用的会员脚本项目集合。

翻译自: https://code.tutsplus.com/tutorials/mastering-wp_user_query--cms-23204

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值