从 WooCommerce 中的当前产品类别获取同级术语 ID 列表

2023-12-04

我想根据当前类别 ID 检索术语 ID 列表。

目前我正在使用以下代码:

$product_cat_items  = get_queried_object();
$product_cat_id     = $product_cat_items->term_id;
$product_cat_child  = get_term($product_cat_id, 'product_cat');
$product_cat_parent = $product_cat_child->parent;

$product_cat_related= get_terms('product_cat', array( 'parent' => $product_cat_parent, 'exclude' => $product_cat_id ));

它正在工作,我得到了一系列术语。 但问题是,我只需要术语对象中的 ID 即可获取如下列表:

123,345,678

有没有办法从列表中提取这样的列表$product_cat_related array?

这是当前的输出:

array(2) {
  [0]=>
  object(WP_Term)#26238 (10) {
    ["term_id"]=>
    int(177)
    ["name"]=>
    string(27) "Name"
    ["slug"]=>
    string(21) "name"
    ["term_group"]=>
    int(0)
    ["term_taxonomy_id"]=>
    int(177)
    ["taxonomy"]=>
    string(11) "product_cat"
    ["description"]=>
    string(0) ""
    ["parent"]=>
    int(140)
    ["count"]=>
    int(8)
    ["filter"]=>
    string(3) "raw"
  }
  [1]=> ....
}

自 WordPress 版本 4.5.0 起,分类法应通过“taxonomy”参数传递$args array (see get_terms()文档).
Also get_queried_object()已经给出了WP_Term当查询的对象是分类术语时的对象。
您也可以使用'fields' => 'ids'作为一个论点get_terms(),只得到一个数组term Ids而不是数组WP_term对象(see WP_Term_Query可用参数).
最后,您将使用 PHPimplode()获取一串逗号分隔的术语 Id。

所以你的代码将是:

$current_term = get_queried_object(); // Already a WP_Term Object

if ( $current_term->parent > 0 ) {
    $siblings_ids = get_terms( array(
        'taxonomy'  => 'product_cat',
        'parent'    => $current_term->parent,
        'exclude'   => $current_term->term_id,
        'fields'    => 'ids',
    ) );

    // Get a string of coma separated terms Ids
    $siblings_list_ids = implode(',', $siblings_ids);

    // Testing output
    echo $siblings_list_ids;
}

经过测试并有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 WooCommerce 中的当前产品类别获取同级术语 ID 列表 的相关文章

  • 如何在数据列表 HTML PHP 中设置选择

    您好我想知道是否有一种方法可以在数据列表中设置选定的值 我想要这样的东西
  • 使用“INSERT ... ON DUPLICATE KEY UPDATE”插入多条记录

    我的表结构 table marks 我的目标 我想用条件插入或更新多条记录 我目前正在通过此查询进行检查 第一步 SELECT FROM marks WHERE student 115 AND param 1 第二步 if records
  • 获取今天的科普特日期

    我正在寻找获取今天的科普特日期与任何代码类型类似php or javascript在我的网站标题中显示科普特日期 我需要阿拉伯语或英语版本 我试图找到它 但没有找到类似的英文内容 参考 http www copticchurch net e
  • 如何更改codeception phpbrowser/mink超时

    我正在尝试使用代码接收创建测试 以检查页面在高负载的情况下是否正常工作 不幸的是 如果页面负载非常高并且测试开始 我会收到这样的错误 Codeception Exception ModuleConfig Codeception Util M
  • MySQL 和 PHP 参数 1 作为资源

    好吧 当我运行下面提到的代码时 PHP 向我抛出此错误 在日志中 Error mysql num rows 期望参数 1 为资源 第 10 行 place 中给出的字符串 9 11号线 queryFP SELECT FROM db coun
  • PHP:将多字节字符串(单词)拆分为单独的字符

    尝试使用 mb split 将这个字符串 主楼怎么走 分割成单独的字符 我需要一个数组 但没有成功 有什么建议吗 谢谢你 例如 尝试使用带有 u 选项的正则表达式 chars preg split u string 1 PREG SPLIT
  • php中的$$是什么意思? [复制]

    这个问题在这里已经有答案了 变量后面的两个背对背 是什么意思 像这样 id 我在哪里可以找到更多相关信息 谢谢 In PHP 意味着您将给至少一名维护程序员带来多年的痛苦和折磨 请注意 您最终可能会成为维护程序员 它是一个可变变量 想象一下
  • 如何从脚本中创建新的 Joomla 用户帐户?

    我们正在为 Joomla 创建一个 XML API 允许合作伙伴网站在我们的网站上为其用户创建新帐户 我们已经创建了一个独立的 PHP 脚本来处理和验证 API 请求 但现在我们需要实际创建新帐户 我们最初只想进行 CURL 调用来提交注册
  • PHP DOM - 剥离 span 标签,保留其内容

    我希望采用如下标记 span class test Some text that is strong bolded strong and contains a a href link a span 并在 PHP 中找到剥离跨度的最佳方法 剩
  • Laravel 从 API 响应中删除标头值

    Laravel 应用程序版本 5 6 我希望从 API 响应中显示的 Cache Control 标头中删除 private 值 我有一个中间件添加 无缓存 和 无存储 值 response next request response gt
  • 显示和随机化 php 数组

    我有一个显示结果的数组 如下所示 Array 0 gt 71 1 gt 56 2 gt 64 3 gt 82 4 gt 90 5 gt 80 6 gt 65 7 gt 62 8 gt 14 9 gt 3 我的代码是 while row my
  • 从 php 执行 bash 脚本并立即输出回网页

    我有一组 bash 和 Perl 脚本 开发在 Linux Box 上部署所需的目录结构 可选 从svn导出代码 从这个源构建一个包 这在终端上运行良好 现在 我的客户请求此流程的 Web 界面 例如 某些页面上的 创建新包 按钮将一一调用
  • 如何使用 jQuery Ajax 将 PHP 数组值传递到另一个文件?

    这是我的代码
  • 使用 :hover 作为元素的内联样式(使用 HTML/CSS/php)[重复]

    这个问题在这里已经有答案了 可能的重复 如何将 a hover 规则嵌入到文档中间的样式属性中 https stackoverflow com questions 131653 how do i embed an ahover rule i
  • 当我使用 session_start() 时,Xampp 7.0.1 Apache 崩溃

    当我在 PHP 中使用 session start 启动会话时 我的 Apache 服务器停止工作 我正在使用 Windows 版 Xampp 7 0 1 我的配置文件如下所示 即使我把它放在文件的第一行 它也不起作用 有人知道如何解决这个
  • 使(文本到图像)图像具有一定的宽度但无限的长度?

    我有下面的代码 可以用大量文本生成图像 我希望该图像的宽度为 700 像素 我还希望它保留字符串所具有的段落结构 该字符串来自 MySQL 数据库 我怎样才能实现这一点 font 2 width imagefontwidth font st
  • PHP switch case 在 case 中存在多个值

    我有一个变量保存值 每周 每月 季度 和 年度 还有另一个变量保存值从 1 到 10 switch var2 case 1 var3 Weekly break case 2 var3 Weekly break case 3 var3 Mon
  • 通过身份验证保护 CodeIgniter 2 应用程序的正确方法是什么?

    I have Ion Auth http benedmunds com ion auth 正确安装并在我的服务器上运行 我也有默认的代码点火器2 新闻 教程在同一个 CI 安装中工作 我只是在玩 并对使用身份验证系统 封闭 或保护整个应用程
  • 使用 MYSQL 将 h:mm pm/am 时间格式插入数据库

    我正在尝试将以 h mm am pm 格式写入的时间插入到存储为标准 DATETIME 格式 hh mm ss 的数据库中 但我不知道如何将发布的时间转换为标准格式所以数据库会接受它 这是我到目前为止一直在尝试的 title POST in
  • 禁用 WooCommerce 手动/编辑订单的电子邮件通知

    需要 WooCommerce 专业知识 我需要禁用手动创建的订单的电子邮件通知 我必须使用处理状态 由于处理订单状态的自定义挂钩 我无法创建自定义状态 理想情况下 手动订单页面中可以勾选一个复选框 勾选后 它将禁止在每种状态下向客户发送电子

随机推荐

  • 代码签名错误,如何将 Xcode 项目切换到另一台 Mac?

    我知道如何使用 Xcode 和一切 但这是一个初学者问题 我刚刚买了一台新的 MacBook Pro 我专门用它来开发 iPhone 我将主要应用程序项目从 Mac Mini 转移到了 MacBook Pro 这样我就可以在两台设备上工作
  • 如何重新启动一个线程

    我尝试编写一个文件监视器 如果附加了新行 它将检查文件 该监视器实际上是一个线程 它将始终通过随机访问文件读取该行 这是监控核心代码 public class Monitor public static Logger log Logger
  • 如何在 idl 中声明 IStream,以便 Visual Studio 将其映射到 s.w.interop.comtypes?

    我有一个 COM 对象 需要从 C 客户端获取流并对其进行处理 看来我应该使用 IStream 所以我像下面这样写我的idl 然后我使用 MIDL 编译为 tlb 编译我的解决方案 注册它 然后将对我的库的引用添加到 C 项目 Visual
  • C++ 字符串转二进制代码 / 二进制代码转字符串

    我需要将一个字符串转换为带有第一个字符串的二进制代码的字符串 对于第一部分 我使用了这个 将字符串转换为二进制的最快方法 工作完美 但我无法找到将其写入新字符串的方法 这是我到目前为止使用的代码 for size t i 0 i lt ou
  • Python循环遍历字符串并将其与通配符模式匹配

    string1 abc string2 abdabcdfg 我想知道 string1 是否是 string2 的子串 但是 也有通配符 例如 可以是任何字母 y can be a or d x can be b or c 因此 yx 将是子
  • SQL - WHERE 条件的顺序重要吗?

    假使 假设category id是表的索引键 不是主键 books 下面两条SQL语句有什么区别吗 SELECT FROM books WHERE author Bill AND category id 1 SELECT FROM book
  • 如何在 SymPy 中加速缓慢的矩阵乘法?

    我正在编写一个工具来使用 SymPy 求解特定的递推方程 并发现涉及矩阵乘法的步骤之一花费了非常长的时间 例如 如果我在 iPython 控制台中尝试以下操作 In 1 from sympy import In 2 A Matrix 500
  • 使用 ncurses pad 在 C 中滚动

    我试图在 ncurses 中获取一个窗口 在其中写入 mysql 查询的结果 但查询返回的行数比我终端中的行数多 所以我尝试创建一个垫子 以便我可以滚动浏览结果 但问题是 我的终端上没有可见的键盘 我只是简化了代码 但它仍然不适合我 inc
  • 完全合格的域名验证

    是否有一种快速而肮脏的方法来验证是否输入了正确的 FQDN 请记住 没有 DNS 服务器或互联网连接 因此必须通过 regex awk sed 完成验证 有任何想法吗 4 253 a zA Z0 9 1 63
  • CORS 错误,但仅在 POST 请求时出现,尽管有 cors 配置(GET 没有问题)

    我使用 Nodejs Express 服务器 尽管允许主机 但我仍然遇到 CORS 错误 请求中不存在 Access Control Allow Origin 标头 资源 但仅适用于 POST 端点 GET 没有问题 我的客户端浏览器允许使
  • 生成 PDF 时出现堆栈溢出异常 [重复]

    这个问题在这里已经有答案了 作为我的延续先前的问题我一直在尝试 PDF 的页眉和页脚功能 经过一番讨论后 我更改了 PdfPageEventHelper 类上的大量代码 以下是我所拥有的 public class ReportHeaderF
  • 将 VBA Range 复制粘贴到另一工作表 循环并转置数据

    对于 Excel 中的模型 我想将数据从工作簿中的一张工作表复制并粘贴到工作簿中的另一张工作表 并使用 for next 循环转置此数据 来自工作文件 CME 的数据应粘贴到 RME 工作文件中 数据总行数为2420 但是 由于复制和粘贴不
  • Android数据备份服务

    我正在尝试使用数据备份服务 以便保存用户共享首选项 如上所述here 然而 我在不同的Android版本中尝试测试时遇到了以下问题 安卓2 3 4 扩展 BackupAgentHelper 后 尝试使用 bmgr 工具测试服务 按照以下步骤
  • Rally 使用 Web 服务 API 批量添加测试用例结果

    我们即将开始通过 API 更新 Rally 测试结果的阶段 我找不到通过 Web 服务 API 执行此操作的示例 例如发布 xml 谁能指出我这一点吗 我还想知道有什么能力可以批量执行此操作 例如一次性上传一组测试结果 也许有连接器可以将各
  • Laravel 设置 cookie 不起作用

    我在自定义中间件中有以下代码 public function handle request Closure next if request gt hasCookie uuid return next request uuid 99 resp
  • 完全卸载并重新加载 Forge 查看器

    我在 Angular 5 应用程序上使用 Forge Viewer 有没有办法完全卸载查看器以便稍后重新加载 我有以下代码来卸载查看器 if this viewer this viewer running this viewer tearD
  • 从另一个线程启动我的表单时,它无法正确显示

    情况是这样的 我正在开发一个具有以下结构的简单应用程序 FormMain 启动点 表单通知 功能齐全 Right 嗯 在FormMain我有以下功能 private void DoItInNewThread ParameterizedThr
  • (!'which npm') 在 PHP 脚本中意味着什么?

    什么是 which npm 下面代码中的意思是 if which npm die You need to install NPM PHP EOL 以下是来自 GITHUB 的完整文件的链接 WPBP 生成器 bin wpbp 生成器 它检查
  • 使用 CI activerecords 组合 `where` 和 `like` 语句

    长话短说 是否可能 如果可能的话 我怎样才能构建一个看起来有点像这个的查询 SELECT FROM a WHERE row 1 AND other row LIKE OR another row LIKE 基本上我无法提出 找到这个问题的解
  • 从 WooCommerce 中的当前产品类别获取同级术语 ID 列表

    我想根据当前类别 ID 检索术语 ID 列表 目前我正在使用以下代码 product cat items get queried object product cat id product cat items gt term id prod