获取与特定分类法关联的用户ID列表

获取与特定分类法关联的用户id列表

本文介绍了如何在WordPress中获取与特定分类法(taxonomy)关联的用户ID列表。通过使用get_users()函数和WP_Query类,我们可以遍历所有用户,并检查他们是否发布了与特定分类法相关的文章。此外,还提供了一种使用$wpdb对象直接执行SQL查询的方法,以更高效地获取用户ID。

方法一:使用 get_users() 和 WP_Query

此方法通过遍历所有用户,并使用 WP_Query 检查每个用户是否发布了与特定分类法相关的文章。

$user_args = array( 'orderby' => 'ID' );$users = get_users($user_args);// 循环遍历每个用户foreach($users as $user){    $user_posts = new WP_Query(array(        'post_type' => 'product', // 你的自定义文章类型        'author'         => $user->ID,        'posts_per_page' => -1,        'tax_query'      => array(            array(                'taxonomy' => 'product_cat', // 你的自定义分类法slug                'field'    => 'term_id',                'terms'    => 22 // 你的分类法term ID            )        )    ));    if( $user_posts->have_posts() ) {        echo $user->first_name . ' ' . $user->last_name. ' associated with taxonomy 22'."
"; }}

代码解释:

get_users($user_args): 获取所有用户。$user_args 允许你自定义查询用户的方式,例如按ID排序。WP_Query: 用于查询文章。post_type: 指定要查询的文章类型。author: 指定要查询的作者ID。posts_per_page: 设置为 -1 表示获取所有文章。tax_query: 用于指定分类法查询条件。taxonomy: 分类法的 slug。field: 用于匹配的字段,这里使用 term_id。terms: 要匹配的 term ID。$user_posts->have_posts(): 检查查询结果是否有文章。

注意事项:

将 product 替换为你自己的自定义文章类型。将 product_cat 替换为你自己的自定义分类法 slug。将 22 替换为你自己的分类法 term ID。如果只需要用户ID,可以将 echo $user->first_name . ‘ ‘ . $user->last_name. ‘ associated with taxonomy 22’.””; 替换为 echo $user->ID.””;

限制特定用户ID:

如果你只想查询特定用户ID,可以使用 include 参数:

$user_args = array(    'include' => array(11, 33, 52, 57, 997) // 添加你的用户ID,用逗号分隔);$users = get_users( $user_args );//Loop through each peche authorforeach($users as $user){    $user_posts = new WP_Query(array(        'post_type' => 'product', // 你的自定义文章类型        'author'         => $user->ID,        'posts_per_page' => -1,        'tax_query'      => array(            array(                'taxonomy' => 'product_cat', // 你的自定义分类法slug                'field'    => 'term_id',                'terms'    => 22 // 你的分类法term ID            )        )    ));    if( $user_posts->have_posts() ) {        echo $user->ID."
"; }}

方法二:使用 $wpdb 直接执行 SQL 查询

此方法直接执行 SQL 查询,效率更高,尤其是在用户数量很多的情况下。

global $wpdb;$all_ids = array();$result = $wpdb->get_results( "SELECT u.ID FROM wp_users u INNER JOIN wp_term_relationships r ON u.ID = r.object_id WHERE u.user_status = 0 AND r.term_taxonomy_id = 1186", ARRAY_A );foreach ( $result as $key => $id ) {    $all_ids[] = $id['ID'];}if( !empty( $all_ids ) ){    echo implode( ',', $all_ids );}

代码解释:

global $wpdb;: 声明全局 $wpdb 对象,用于与数据库交互。$wpdb->get_results(): 执行 SQL 查询并返回结果。”SELECT u.ID FROM wp_users u INNER JOIN wp_term_relationships r ON u.ID = r.object_id WHERE u.user_status = 0 AND r.term_taxonomy_id = 1186″: SQL 查询语句,用于获取与特定 term_taxonomy_id 关联的用户ID。ARRAY_A: 指定结果以关联数组形式返回。foreach: 遍历结果集,将用户ID添加到 $all_ids 数组。implode( ‘,’, $all_ids ): 将 $all_ids 数组中的用户ID用逗号连接成字符串。

注意事项:

确保你了解 SQL 查询语句,并根据你的数据库结构进行调整。将 1186 替换为你自己的 term_taxonomy_id。使用 $wpdb->prepare() 来防止 SQL 注入攻击,特别是当 term_taxonomy_id 是一个变量时。

示例,使用 $wpdb->prepare():

global $wpdb;$term_taxonomy_id = 1186; // 你的 term_taxonomy_id$all_ids = array();$query = $wpdb->prepare("SELECT u.ID FROM wp_users u INNER JOIN wp_term_relationships r ON u.ID = r.object_id WHERE u.user_status = 0 AND r.term_taxonomy_id = %d", $term_taxonomy_id);$result = $wpdb->get_results( $query, ARRAY_A );foreach ( $result as $key => $id ) {    $all_ids[] = $id['ID'];}if( !empty( $all_ids ) ){    echo implode( ',', $all_ids );}

总结

本文介绍了两种在 WordPress 中获取与特定分类法关联的用户ID的方法。第一种方法使用 get_users() 和 WP_Query,代码更易于理解,但效率较低。第二种方法使用 $wpdb 直接执行 SQL 查询,效率更高,但需要一定的 SQL 知识。选择哪种方法取决于你的具体需求和技术水平。推荐使用 $wpdb->prepare() 来构建SQL查询,以避免潜在的安全风险。

以上就是获取与特定分类法关联的用户ID列表的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1271756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月10日 14:09:46
下一篇 2025年12月10日 14:10:09

相关推荐

  • PHP 注册后自动登录实现教程

    本教程旨在指导开发者如何在 PHP 注册流程完成后实现用户自动登录。核心在于注册成功后,模拟登录流程,设置相应的 session 变量,然后重定向到用户首页。本文将提供详细的代码示例和步骤说明,确保开发者能够顺利地将此功能集成到自己的项目中。 实现注册后自动登录的步骤 要在 PHP 中实现注册后自动…

    2025年12月10日
    000
  • PHP注册后自动登录实现教程

    本文将详细介绍如何在PHP注册成功后实现自动登录功能。主要步骤包括:确保已开启Session、注册成功后设置Session变量,以及重定向用户到首页。通过设置Session变量,模拟用户登录状态,使用户在注册后无需手动登录即可访问需要登录权限的页面。本文提供详细代码示例,助你快速实现此功能。 在PH…

    2025年12月10日
    000
  • PHP实现用户注册后自动登录与页面重定向教程

    本教程详细阐述了如何在PHP中实现用户注册成功后的自动登录功能,从而提升用户体验。我们将通过修改注册逻辑,在用户数据入库后立即设置会话变量,并安全地重定向用户至指定页面,确保流程的无缝衔接,并涵盖关键的安全实践与注意事项。 在现代web应用中,用户注册后立即登录并跳转到个人主页是一种常见的需求,它极…

    2025年12月10日
    000
  • 为 WooCommerce 单品页面添加产品分类链接

    在 WooCommerce 单品页面添加产品分类链接,能够帮助用户快速了解产品的所属类别,并方便地跳转到该分类下的其他产品。以下是具体实现方法: 首先,我们回顾一下原始代码,这段代码虽然能够显示产品分类名称,但并没有添加超链接: /** Output Product (Brand) Category…

    2025年12月10日
    000
  • php如何使用Guzzle发送HTTP客户端请求?Guzzle HTTP客户端请求实践

    Guzzle是PHP中处理HTTP请求的首选库,通过Composer安装后可轻松发送GET、POST等请求。它封装了底层细节,提供统一API,支持异常处理、超时设置、基础URI配置及默认头部定义。使用Client类初始化客户端时,可配置base_uri、timeout、headers等选项提升开发效…

    2025年12月10日
    000
  • 为 WooCommerce 单品页面的产品分类添加链接

    本文将指导您如何在 WooCommerce 单品页面的产品分类名称上添加超链接,使其能够直接跳转至相应的分类页面。 利用 wc_get_product_category_list() 函数实现链接 WooCommerce 提供了一个方便的函数 wc_get_product_category_list…

    2025年12月10日
    000
  • php如何实现页面分页_php分页功能的实现方法

    答案:PHP分页核心是通过LIMIT和COUNT()配合实现高效数据查询与导航。首先用SELECT COUNT()获取总条数,结合每页数量计算总页数;再利用LIMIT的偏移量((当前页-1)*每页条数)从数据库精准取当页数据;最后生成含上一页、下一页及省略号策略的页码链接,并校验页码有效性以提升用户…

    2025年12月10日
    000
  • PHP如何使用正则表达式_PHP正则表达式的语法与应用实例

    答案:PHP中正则表达式通过preg_函数实现,基于PCRE库,用于字符串匹配、查找、替换和分割。核心函数包括preg_match(单次匹配)、preg_match_all(全局匹配)、preg_replace(替换)和preg_split(分割)。模式由定界符包围,常用斜杠/,支持元字符如.、*、…

    2025年12月10日
    000
  • 为WooCommerce外部商品添加“在新标签页打开”的购物车按钮

    本教程旨在指导用户如何为WooCommerce商店中的外部商品添加“在新标签页打开”的购物车按钮。通过修改functions.php文件,我们可以自定义商店页面和商品详情页的“添加到购物车”按钮,使其链接在新标签页中打开,从而改善用户体验,尤其是在使用联盟链接时。 修改functions.php文件…

    2025年12月10日
    000
  • 为 WooCommerce 外部商品添加 “在新标签页打开” 功能

    本文旨在指导 WooCommerce 用户,特别是拥有联盟网站的用户,如何为外部商品(Affiliate Product)的“添加到购物车”按钮添加 target=”_blank” 属性,使其在新的标签页中打开链接。通过修改 functions.php 文件,可以实现商店页面…

    2025年12月10日
    000
  • 为 WooCommerce 外部产品添加“在新标签页打开”功能的教程

    本文介绍了如何修改 WooCommerce 商店中外部产品的“添加到购物车”按钮,使其点击后在新标签页中打开链接。通过自定义函数,我们可以实现在商品列表页和商品详情页都实现该功能,提升用户体验,方便用户浏览外部链接而无需离开当前页面。 修改 WooCommerce 外部产品“添加到购物车”按钮,使其…

    2025年12月10日
    000
  • 为 WooCommerce 外部商品添加“在新标签页打开”功能

    本文将指导您如何修改 WooCommerce 商店中外部商品的“添加到购物车”按钮,使其点击后在新标签页中打开链接。正如摘要所述,通过自定义代码,您可以同时修改商店页面和商品详情页的按钮行为,从而提升用户体验。 修改商店页面“添加到购物车”按钮 以下代码段将修改商店页面上外部商品的“添加到购物车”按…

    2025年12月10日
    000
  • php如何发送电子邮件?php发送邮件的多种实现方法

    PHP发送邮件推荐使用PHPMailer或框架集成方案,因mail()函数功能弱、错误处理差、送达率低且不支持SMTP认证,而PHPMailer支持HTML、附件、加密及详细调试,框架如Laravel则提供队列与模板集成,结合专业邮件服务可进一步提升可靠性。 PHP发送电子邮件主要有几种途径,最直接…

    2025年12月10日
    000
  • 将多选框的多个值对应到 SQL 数据库的方案

    摘要 本文探讨了如何有效地将 HTML 多选框中每个选项关联的多个值(如语言名称、图标链接、语言级别)存储到 SQL 数据库的不同列中。传统的 HTML 标签的 option 无法直接支持多个 value 属性。本文提出了一种解决方案,通过创建一个包含所有选项及其属性的参考表,并在 标签中使用该表的…

    2025年12月10日
    000
  • Laravel 数据库迁移:安全添加新表并保护现有数据

    本文旨在指导您如何在不丢失现有数据的情况下,向 MySQL 数据库安全地添加新表或修改表结构,特别是在使用 Laravel 框架时。我们将详细探讨 php artisan migrate 命令的工作原理,以及 Schema 门面提供的各种操作,并明确指出哪些命令可能导致数据丢失,以确保您的数据库完整…

    2025年12月10日
    000
  • PHP字符串处理:多分隔符有序拆分与类型识别教程

    本教程详细介绍了在PHP中如何处理包含多个分隔符的字符串,并实现有序拆分,同时识别每个子串的类型。我们将探讨一种基于正则表达式的预处理与解析方法,该方法能够有效地将分隔符与内容关联,并处理多词内容块。文章将通过示例代码展示实现细节,并分析替代方案的局限性,以指导读者选择最合适的字符串处理策略。 1.…

    2025年12月10日
    000
  • PHP中利用多分隔符拆分字符串并保留分隔符与顺序的教程

    本教程详细介绍了在PHP中如何处理包含多种分隔符的字符串拆分问题,并确保在拆分过程中保留分隔符的类型和原始顺序。我们将探讨两种主要的实现策略:一种是结合正则表达式和explode函数进行预处理,另一种是通过手动令牌化实现,并提供具体的代码示例和实践指导,帮助开发者高效地解析复杂字符串。 在处理复杂文…

    2025年12月10日
    000
  • php如何判断访问来源是移动设备还是PC php检测客户端设备类型技巧

    答案是通过解析HTTP_USER_AGENT字符串可判断设备类型。核心方法为:利用PHP的$_SERVER[‘HTTP_USER_AGENT’]获取客户端标识,通过关键词匹配(如Mobile、Android、iPhone)区分移动设备与PC;基础函数可用stripos遍历关键…

    2025年12月10日 好文分享
    000
  • PHP字符串解析:多分隔符保持顺序与类型识别教程

    在php开发中,我们经常需要解析结构复杂的字符串。一个常见的需求是根据多种不同的分隔符对字符串进行切分,同时不仅要保留分隔符本身,还要识别其代表的含义(例如,*代表“负值”,-代表“正值”),并保持原始的顺序。传统的 explode() 函数在面对多分隔符和需要保留分隔符信息时显得力不从心。 问题场…

    2025年12月10日
    000
  • PHP字符串多分隔符有序解析与类型识别

    本文旨在提供一个PHP教程,详细讲解如何高效地处理包含多种分隔符的字符串,并实现对每个拆分出的子字符串进行类型识别(即识别其前缀分隔符的含义),同时严格保持原始顺序。我们将重点介绍利用正则表达式进行预处理,结合字符串拆分和迭代解析的策略,以应对标准explode()函数在此类复杂场景中的局限性。 挑…

    2025年12月10日
    000

发表回复

登录后才能评论
关注微信