在特定的 Woocommerce 产品类别档案页面上显示产品属性

2024-01-10

我想在类别页面上显示两个属性,仅在特定类别上显示属性名称和值。

我发现的这段代码显示了属性的标签,但复制了值,我真的很难显示类别变量。任何帮助是极大的赞赏。

代码:

add_action('woocommerce_after_shop_loop_item','add_attribute');
function add_attribute() {
    global $product;

    $product_attributes = array( 'pa_set', 'pa_team');
    $attr_output = array();

    // Loop through the array of product attributes
    foreach( $product_attributes as $taxonomy ){
        if( taxonomy_exists($taxonomy) ){
            $label_name = get_taxonomy( $taxonomy )->labels->singular_name;
            $value = $product->get_attribute('pa_set');

               if( ! empty($value) ){
                // Storing attributes for output
                $attr_output[] = '<span class="'.$taxonomy.'">'.$label_name.': 
    '.$value.'</span>';
            }
        }
    }

    // Output attribute name / value pairs separate by a "<br>"
    echo '<div class="product-attributes">'.implode( '<br>', $attr_output 
    ).'</div>'; 
}

Updated- 问题来自以下行,其中产品属性属性值始终针对相同的产品属性:

$value = $product->get_attribute( 'pa_set' );

应该是这样的:

$value = $product->get_attribute( $taxonomy );

完整的重新访问代码将是:

add_action('woocommerce_after_shop_loop_item','display_loop_product_attribute' );
function display_loop_product_attribute() {
    global $product;

    $product_attributes = array('pa_set', 'pa_team'); // Defined product attribute taxonomies.
    $attr_output = array(); // Initializing

    // Loop through the array of product attributes
    foreach( $product_attributes as $taxonomy ){
        if( taxonomy_exists($taxonomy) ){
            if( $value = $product->get_attribute($taxonomy) ){
            // The product attribute label name
            $label_name = wc_attribute_label($taxonomy);
                // Storing attributes for output
                $attr_output[] = '<span class="'.$taxonomy.'">'.$label_name.': '.$value.'</span>';
            }
        }
    }
    // Output attribute name / value pairs separate by a "<br>"
    echo '<div class="product-attributes">'.implode('<br>', $attr_output).'</div>';
}

代码位于活动子主题(或活动主题)的 function.php 文件中。经过测试并有效。


定位产品类别存档页面:

你将使用条件标签is_product_category() https://docs.woocommerce.com/document/conditional-tags/#section-5在函数内部IF陈述…

对于特定的产品类别归档页面,您可以设置它们正如这里所解释的 https://docs.woocommerce.com/document/conditional-tags/#section-5在数组中的函数内部,例如:

if( is_product_category( array('chairs', 'beds') ) {
    // Here go the code to be displayed
}

您只需要在数组中设置正确的产品类别...


有关的:在自定义主页和产品类别档案中显示 WooCommerce 产品属性 https://stackoverflow.com/questions/55129529/show-woocommerce-product-attributes-in-custom-home-and-product-category-archives/55131199#55131199

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

在特定的 Woocommerce 产品类别档案页面上显示产品属性 的相关文章

  • 禁用 WooCommerce 手动/编辑订单的电子邮件通知

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

    我使用 Swagger php 当我定义查询字符串上的参数时 它可以是一个数组 但据我所知 它不支持这种查询字符串 https api domain tld v1 objects q 1 q 5 q 12 我相信这会被设定in the co
  • 所有 PHP 相等比较都是对称的吗?

    Is a b总是等价于 b a 我认为在 JavaScript 中 由于强制转换 有一些奇怪的情况并非如此 I think ide https stackoverflow com questions 4752579 are all php
  • Laravel Auth:attempt() 不会持久登录

    我在网上找到了许多有类似问题的资源 但似乎没有一个解决方案可以解决我的问题 当我使用以下代码登录用户时 一切看起来都很好 email Input get email password Input get password if Auth a
  • 如何关闭未关闭的 HTML 标签?

    每当我们从数据库或类似来源获取一些经过编辑的用户输入内容时 我们可能会检索仅包含开始标记但不包含结束标记的部分 这可能会妨碍网站当前的布局 有客户端或服务器端的方法来解决这个问题吗 找到了一个很好的答案 使用 PHP 5 并使用 DOMDo
  • CodeIgniter 控制器 - JSON - AJAX

    我正在尝试通过 AJAX 使用 CodeIgniter 发送表单构建 并尝试使用 JSON 获取响应 但是 我只在打开开发人员选项卡时看到响应 我什至不确定这是否实际上是响应 因为它显示了两个 json 数据 它所显示的只是加载旋转器 然后
  • 从类似 cronjob 的语法创建“下次运行时间”日期

    在我正在创建的应用程序中 用户可以安排重复任务 生成间隔模式的简单值是 Minute 0 59 90 each minute Hour 0 23 90 each hour Day of month 1 31 90 each day of m
  • 在 PHP 中比较两个对象的最快方法是什么?

    假设我有一个对象 在本例中为 User 对象 并且我希望能够使用单独的类来跟踪更改 用户对象不必以任何方式改变它的行为才能发生这种情况 因此 我的单独的类创建它的 干净 副本 将其存储在本地某个位置 然后可以将 User 对象与原始版本进行
  • 编辑 HTACCESS 文件以防止直接访问特定文件夹中的特定文件

    我试图阻止直接访问子文件夹中的特定文件 我意识到这个论坛上有很多描述类似问题的主题 但是 我的似乎有点尴尬 由于我已经存在 HTACCESS 文件 这是文件的文件路径 www example com PRINCIPAL PROJECTS m
  • PHP - 类外 use 关键字和类内 use 关键字的区别

    伙计们 美好的一天 只是想问一下有什么区别use之外的class and use在 的里面class 我也用谷歌搜索过 但我的问题与答案不匹配 Example namespace App Http Controllers Auth use
  • 使用 PHP PayPal REST API 退款?

    我正在开发一个集成到 PayPal 的 REST API 中的 PHP 应用程序 我正确处理了事务并将事务 ID 保存到 MySQL 数据库中 我现在正在尝试退款 但无法让它停止给出 传入 JSON 请求未映射到 API 请求 错误 有人对
  • 通过 URL 指定控制器类与为每个控制器编写一个脚本相比,有何优缺点?

    今年夏天我安装了两个不同的 PHP 系统 每个都使用两种不同的方法 方法 1 每个任务一个 PHP 文件 该方法需要一个PHP为每个主要任务创建文件 例如 我的上传脚本可以通过http www domain com upload php O
  • WordPress 包含 SVG 文件错误

    我使用 PHP 和 WordPress 在本地主机上 我可以毫无问题地包含 SVG 文件 但在实时服务器上 我尝试包含一个 SVG 文件以便能够使用 CSS 对其进行样式设置 我收到此错误消息 Parse error syntax erro
  • 使用 json_encode() 函数在 PHP 数组中生成 JSON 键值对

    我正在尝试以特定语法获取 JSON 输出 这是我的代码 ss array 1 jpg 2 jpg dates array eu gt 59 99 us gt 39 99 array1 array name gt game1 publishe
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • WordPress 自定义帖子类型未显示在搜索结果中

    我在 WordPress 中遇到自定义帖子类型 测验 和搜索的问题 自定义帖子类型未显示在我的搜索结果页面中 我的搜索结果中仅显示默认的帖子内容 以下是我使用的代码 函数 php函数create posttype register post
  • 从所有会话中注销

    我有一个注销选项 这是我的代码 session start session destroy setcookie key time 60 60 24 setcookie username time 60 60 24 我想添加另一个选项来注销所
  • Stream_context_set_params 不适用于 ssh2.sftp 包装器

    我想使用类似的功能here http www php net manual en function stream notification callback php 请检查以下代码 function notify notification
  • 从字符串中获取数字

    我有一个字符串 例如 lorem 110 ipusm 我想获取 110 我已经尝试过这个 preg match all 0 9 string ret 但这正在返回 Array 0 gt 1 1 gt 1 2 gt 0 我想要这样的东西 Ar
  • 如果产品重量超过1000克,如何以公斤为单位显示

    在 Storefront 主题中 我使用下面的代码将格式化重量从 1000g 更改为 1kg add action woocommerce after shop loop item title show weight 10 function

随机推荐

  • Gradle 和插件更新在 Android Studio 中出现错误

    我刚刚将 Android Studio 从 2 1 更新到 3 1 旧版本的 Gradle 运行良好 但速度缓慢 因为它与新版本的 Android Studio 不兼容 我使用以下选定的答案更新了 Gradle 至 4 4 和插件 至 3
  • java - 来自另一个目录的类的初始包

    我有一些问题如何从另一个目录的类文件初始化包 File file new File D java myproject Name pack time MyClass class URL cp new File file getParent t
  • 如何在visionOS中旋转ModelEntity?

    当将模型加载为 Model3D 对象时 您可以添加手势修改器 如下所示 Model3D named model name bundle realityKitContentBundle model in model resizable asp
  • Ionic 2:无法调试在Android设备上运行的应用程序

    重现步骤 1 创建新项目https github com driftyco ionic starter super https github com driftyco ionic starter super2 运行 ionic run an
  • PySide:如何放大QTableWidget中的图像?

    我在使用 PySide QTableWidget 时遇到问题 我需要在所有行的第一列中添加图像预览 我正在尝试使用 QIcon 添加此内容 library table insertRow index library table setIte
  • 在 JavaScript 中创建隐藏字段

    如何在 JavaScript 中将隐藏字段创建为特定的表单
  • 神秘的CloudFront“错误请求”

    我已经设置了一个新的域和 Web 服务器 以及一个为其提供服务的 CloudFront 发行版 CloudFront 已成功在其自己的域上为站点提供服务 d1lnegrqin0up5 cloudfront net 我希望 mpe io 不带
  • 为什么 MongoDb 不将我的斜杠存储在该字符串中?

    谁能告诉我为什么这个命令在 MongoDB shell 客户端不起作用 db coll update live true set mask D D D D D D D D false true but db coll findOne id
  • Unicode 符号和操作系统/浏览器字体支持

    有很多精彩的 unicode 符号 这真太了不起了 但如果我不知道我的用户的字体是否支持它们 它们就毫无用处 我怎样才能找到它 我可以跟踪用户的字体是否支持 unicode 符号吗 有什么办法可以有某种后备吗 如果不支持此 unicode
  • Microsoft.Practices.ServiceLocation 来自哪里?

    有谁知道哪里Microsoft Practices ServiceLocation来自 这是 MS EnterpriseLibrary 中使用的命名空间和 dll 诚然 这是一个非常简单的 dll 只有少数类 使用反射器 但我找不到它的已发
  • 动态改变admob横幅尺寸

    事情是这样的 你可能知道 Admob 有一个AdSize 函数 你把它放在哪里Banner要显示横幅广告和平板电脑横幅的 AD banner 我想要做的是获取设备的屏幕尺寸 以便我可以将其放入 if 语句中 然后为正确的设备放置正确的横幅
  • 如何设置全局CURL速率(速度)限制?

    我环顾四周寻找 CURL 设置文件 但在 etc 中没有找到它 并且在curl 站点 ether 上也没有找到太多 所以基本上我想要做的就是设置curl可以上传的最大速度限制 无论有多少个实例正在运行 以便我的服务器有一些上传能力留给其他任
  • python 子进程正在覆盖用于标准输出的文件 - 我需要它附加到文件(Windows)

    我想附加STDOUT of subprocess call 到现有文件 我下面的代码覆盖该文件 log file open log file path r cmd r echo some info for the log file subp
  • 缩进多行标签

    我有以下自动生成的 HTML http jsfiddle net BrV8X http jsfiddle net BrV8X 使用 CSS 缩进标签以便单选按钮下方有一些空白的建议方法是什么 label display block marg
  • geom_smooth 自定义线性模型

    一边看着this https stackoverflow com questions 44766497 plotting multiple regression lines based on a variable in rs ggplot2
  • 如何隐藏winforms numericUpDown控件上的箭头?

    为了隐藏箭头 我添加了 numericUpDown Controls 0 Hide 它隐藏了箭头 但在打开表单时留下了空白 如何将它们隐藏为像简单的文本框一样 您可以通过访问 numericUpDown 来隐藏箭头Controls财产 您可
  • 按需复制 Google 电子表格

    我创建了一个相当复杂的 Google 电子表格 我希望用户能够单击按钮或点击链接 并获取此电子表格的副本 他们可以在其中填写数据 我稍后会检查手动处理这些数据 无论如何 我可以通过复杂的链接或一些 JavaScript 甚至可能使用服务器端
  • VS Code 中的快速文本滚动

    我正在 macOS 上测试 Visual Studio Code 想知道是否有可以加快滚动速度的组合键 例如 我需要这个来快速从代码的早期部分转到文件末尾的部分 e g in Emacs when I hold up down arrow
  • 使用 Bootstrap 3 如何隐藏表中的列?

    我试图在我的响应式设计中隐藏列col xs and col sm 我首先尝试使用hidden xs hidden sm类 但这不起作用 我也尝试过使用visible desktop正如这里提到的 Twitter Bootstrap 响应式
  • 在特定的 Woocommerce 产品类别档案页面上显示产品属性

    我想在类别页面上显示两个属性 仅在特定类别上显示属性名称和值 我发现的这段代码显示了属性的标签 但复制了值 我真的很难显示类别变量 任何帮助是极大的赞赏 代码 add action woocommerce after shop loop i