Woocommerce 自定义产品类别下拉问题

2023-11-29

我正在为店面主题开发一个儿童主题。我使用产品类别小部件作为标题下的下拉菜单,这完全符合我的需求,尽管我需要相同的(如果可能)下拉菜单显示在每个类别页面上,而不仅仅是主页上。

我正在定制这段代码这几乎做到了:

/**
 * WooCommerce Extra Feature
 * --------------------------
 *
 * Register a shortcode that creates a product categories dropdown list
 *
 * Use: [product_categories_dropdown orderby="title" count="0" hierarchical="0"]
 */
add_shortcode( 'product_categories_dropdown', 'woo_product_categories_dropdown' );
function woo_product_categories_dropdown( $atts ) {
    extract( shortcode_atts(array(
        'count'        => '0',
        'hierarchical' => '0',
        'orderby'      => ''
    ), $atts ) );
    ob_start();
    // Stuck with this until a fix for http://core.trac.wordpress.org/ticket/13258
    wc_product_dropdown_categories( array(
        'orderby'            => ! empty( $orderby ) ? $orderby : 'order',
        'hierarchical'       => $hierarchical,
        'show_uncategorized' => 0,
        'show_counts'        => $count
    ) );
    ?>
    <script type='text/javascript'>
        /* <![CDATA[ */
        jQuery(function(){
            var product_cat_dropdown = jQuery(".dropdown_product_cat");
            function onProductCatChange() {
                if ( product_cat_dropdown.val() !=='' ) {
                    location.href = "<?php echo esc_url( home_url() ); ?>/?product_cat=" +product_cat_dropdown.val();
                }
            }
            product_cat_dropdown.change( onProductCatChange );
        });
    /* ]]> */
    </script>
    <?php
    return ob_get_clean();
}

现在我需要隐藏计数器并显示空类别。

我还没能明白这一点。

如何隐藏计数器并显示空类别?


在你的代码中有:

  • 代码中的一些错误,例如错误'显示计数'那是'show_count' (没有s) … Now 隐藏柜台已启用并正常运行。
  • 缺少参数“hide_empty”显示空类别

在此短代码中,您可以更改以下可选参数:

  • hierarchical默认情况下禁用(设置为“0”)
  • hide_empty默认情况下禁用(设置为“0”)
  • show_count那是现在默认禁用(设置为“0”)
  • depth默认情况下禁用(设置为“0”)
  • orderby默认设置为“订单”类别(也可以按名称:“名称”)

添加了自定义钩子woocommerce_product_categories_shortcode_dropdown_args这将允许扩展定制……

这是新代码:

add_shortcode( 'product_categories_dropdown', 'woo_product_categories_dropdown' );
function woo_product_categories_dropdown( $atts ) {
    // Attributes
    $atts = shortcode_atts( array(
        'hierarchical' => '0', // or '1'
        'hide_empty'   => '0', // or '1'
        'show_count'   => '0', // or '1'
        'depth'        => '0', // or Any integer number to define depth
        'orderby'      => 'order', // or 'name'
    ), $atts, 'product_categories_dropdown' );

    ob_start();

    wc_product_dropdown_categories( apply_filters( 'woocommerce_product_categories_shortcode_dropdown_args', array(
        'depth'              => $atts['depth'],
        'hierarchical'       => $atts['hierarchical'],
        'hide_empty'         => $atts['hide_empty'],
        'orderby'            => $atts['orderby'],
        'show_uncategorized' => 0,
        'show_count'         => $atts['show_count'],
    ) ) );

    ?>
    <script type='text/javascript'>
        jQuery(function($){
            var product_cat_dropdown = $(".dropdown_product_cat");
            function onProductCatChange() {
                if ( product_cat_dropdown.val() !=='' ) {
                    location.href = "<?php echo esc_url( home_url() ); ?>/?product_cat=" +product_cat_dropdown.val();
                }
            }
            product_cat_dropdown.change( onProductCatChange );
        });
    </script>
    <?php

    return ob_get_clean();
}

代码位于活动子主题(或活动主题)的 function.php 文件中。

经过测试并有效。


1) 用法示例- 所有产品类别和子类别分层显示:

[product_categories_dropdown orderby='name' hierarchical='1']

在 php 代码中你可以这样使用它:

echo do_shortcode("[product_categories_dropdown orderby='name' hierarchical='1']");

或者插入html标签中:

<?php echo do_shortcode("[product_categories_dropdown orderby='name' hierarchical='1']"); ?>

2) 用法示例- 仅“主要母体”产品类别:

[product_categories_dropdown depth='1' hierarchical='1']

在 php 代码中你可以这样使用它:

echo do_shortcode("[product_categories_dropdown depth='1' hierarchical='1']");

或者插入html标签中:

<?php echo do_shortcode("[product_categories_dropdown depth='1' hierarchical='1']"); ?>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Woocommerce 自定义产品类别下拉问题 的相关文章

  • 容器中的 WordPress - 加载某些图像时出现 502

    我已使用容器将 WordPress 部署在 Azure AppService 中 使用 Azure 容器注册表 使用的图像来自 docker hub gt wordpress latest 我还启用了 settings WEBSITES E
  • 在 WordPress 中挂钩 AJAX

    我一直在深入研究 Javascript 和 AJAX 的世界 我非常接近 但由于某种原因 我认为我没有正确地连接到 wordpress ajax 函数 我已经仔细阅读了文档和这个 认为 99 都在那里 这个应用程序的作用是有一个项目列表 每
  • WooCommerce 从购物车中删除所有产品并将当前产品添加到购物车

    我是 WooCommerce 新手 我只需要能够在购物车中添加一种产品 我想在单击 添加到购物车 按钮时清除所有产品并将当前产品添加到购物车 我怎样才能做到这一点 我对此有一个确切的解决方案 尝试以下代码 add filter woocom
  • 组合框下拉位置

    我有一个最大化的表单 其中包含 500px 的组合框控件 停靠在右上角 Width 尝试打开组合框后 列表的一半超出了屏幕 如何强制列表显示在表单中 棘手的问题 我找不到解决这个问题的好办法 只是一个解决方法 添加一个新类并粘贴如下所示的代
  • 使用数据绑定,如何将包含表情符号的文本绑定到标签并使其正确显示?

    我正在编写一个应用程序来连接 WordPress BuddyPress API 该应用程序将允许用户通过 API 相互发送消息 当这些消息包含表情符号时 我很难正确显示它们 以下是 API 返回的消息文本的简短示例 Hi x1f642 ho
  • 删除以动态更改的字符串开头的脚本类型属性

    在 WordPress 网站上 我想删除动态添加随机字符串的脚本 类型 属性 形式为 type xxx text javascript 其中 xxx 在页面加载时发生变化 Disable 火箭装载机 on 云耀光 yourdomain co
  • wp_enqueue_script 用于小部件表单

    我正在创建一个小部件 我需要在管理面板 和定制器 中将小部件表单的脚本排入队列 我尝试了很多方法 function cf enqueue admin script wp enqueue script admin custom script
  • Woocommerce:添加第二个电子邮件地址不起作用,除非收件人是管理员

    我尝试了多种方法来向 Woocommerce 电子邮件添加其他收件人 但它似乎仅适用于主要收件人是管理员的测试订单 这些是我尝试过的片段 如果订单的客户是管理员 则电子邮件将发送到这两个地址 如果订单包含客户电子邮件地址 则仅发送至该电子邮
  • 通过 PHP 脚本重新启动 Nginx

    我目前正在努力使我的 WordPress 插件与 nginx 兼容 该插件需要访问 conf文件在wp content uploads目录 以便它可以添加所需的规则 目前 它更新了 htaccess文件位于同一目录中 更改立即生效 无需干预
  • 更改订单项自定义元数据在 WooCommerce 管理订单中显示的标签和值

    在 Woocommerce 管理屏幕中 我尝试使用订单行元数据来显示一个按钮 该按钮将打开一个新窗口 其中包含代发货供应商的 URL 我已成功从订单产品中提取供应商 URL 并将其推送到订单行项目 我可以将元数据更改为按钮 但其结果是包含自
  • MVC3:设置下拉列表选定值

    我正在使用 mvc3 我的视图中有一个下拉列表 Html DropDownListFor m gt m State new SelectList Model StateList Value Text 有没有办法在视图中设置选定的值 扩展 R
  • 获取 ddSlick 下拉列表中所选

    当前返回未定义 注释行中应该包含什么内容来提醒当前的值 1 2 3 或 4
  • 根据 WooCommerce 中的订单数量设置折扣

    在WooCommerce中 如何根据订单数量设置折扣 例如 我想根据客户订单应用折扣 首单折扣 50 美元 第二次订购折扣 30 美元 第三次订购折扣10美元 我搜索过互联网但没有找到任何可用的解决方案或插件 Thanks 这是一个挂钩的自
  • DropDownList 有一个无效的 SelectedValue,因为它不存在于项目列表中

    这是场景 DropDownList 中的选择与列出可接受值的数据库表绑定 在某个时间点 这些值为 一 二 三 四 在稍后的某个时刻 可接受的值列表将更改为 一 二 四 五 但是 数据库中存储下拉列表值的字段在某些行上仍然包含值 三 加载其中
  • 如何使用 WP REST API 插件获取 YOAST SEO 插件数据?特别是 wpseo_head 挂钩内容

    我正在使用 WP REST API 来获取所有发布数据 嗯 它工作得很好 但任何网站最关心的是 SEO 部分 我正在使用 YOAST SEO 插件 我想获取它在 HTML 的 Head 部分中创建的所有元标记 仅供参考 我使用 Wordpr
  • PHP 7.2 计数错误

    警告 count 参数必须是数组或对象 实现 Countable in 我在以下行中收到上述错误 if 0 gt count this gt xprop 有人可以帮助我理解这一点吗 我对 PHP 还很陌生 问题显然是 this gt xpr
  • 在同一服务器上的 2 个子域中安装 2 个 WordPress 时共享用户

    我有 2 个 WordPress 网站 位于 2 个不同的子域中 例如test1 abc com and test2 abc com 这两个网站都激活了 wp require 插件 只有登录用户才能看到该网站 我们想要创建一个系统 如果用户
  • WordPress 子主题覆盖父主题包括

    我正在创建 WordPress 子主题 需要覆盖某些小部件模板 我正在尝试使用此方法来覆盖父主题调用 覆盖主题功能的正确方法 http www venutip com content right way override theme fun
  • WordPress 子主题包括包含文件

    我在一家WordPress使用 AMPPS 作为本地主机在我的本地计算机上进行设置 使用 Delta 主题 我创建了一个子主题 delta2 child 初始设置效果很好 但是 我需要更改包含文件夹中名为 home slider php 的
  • Wordpress - 通过检查用户状态从外部 bbPress 更改论坛角色

    我想检查用户状态并相应更新他们的 bbPress 论坛角色 不是 WordPress 角色 目的是向 BP Registration Options 插件添加功能 以调节用户注册 在 BuddyPress 中 目前 该插件在用户未经批准时将

随机推荐

  • window.print 不适用于 Opera 浏览器

    我正在尝试使用 javascript 代码在 Opera 浏览器中打开打印对话框 就好像我使用以下代码 Opera 浏览器可以理解并能够打开打印对话框
  • 如果元素存在等待它消失

    所以我正在尝试编写一些 cypress 代码 但我认为文档并不是很清楚 我有两种情况 页面加载时没有加载微调器 页面通过加载微调器加载 我想编写能够满足这两种情况的代码 并让测试继续进行 如果页面没有加载微调器元素 照常继续测试 如果页面确
  • 为什么每个观察委托都在新线程上运行

    在 Rx 中 当使用 Scheduler NewThread 作为 ObserveOn 方法时 当 Rx 已经保证 OnNext 永远不会重叠时 让每个观察委托 OnNext 在新线程上运行有什么好处 如果每个 OnNext 都会被一个接一
  • Flutter Table Calendar:显示从 API 到表日历的事件

    我想显示日历并包括事件 该事件已从 API 中存在 我搜索适合我的情况的插件 我发现表格日历插件 我阅读了手动显示事件的示例并发现了它 override void initState super initState final select
  • 如何读取使用 R 加密的 .xls 文件?

    通常我使用readxl用于读取 excel 文件的包 非常好 read excel path ihateexcel xls sheet 1 但是 如果我尝试读取加密的 xls 文件 会话基本上会冻结 显然不想将文件保存为 csv 因为我会丢
  • Jquery 文件树 - 如何在文件夹单击时返回文件夹名称

    我已经安装并尝试自定义 Jquery 文件树 以便单击文件夹名称时 文件夹名称和路径将返回到调用函数 目前它仅展开和折叠文件夹 并在单击文件时返回文件名 所以我也需要返回该文件夹 但看不到它是在哪里触发的 我正在使用 php 连接器 下面的
  • 如何使 JFileChooser 在断开网络驱动器时正常运行?

    当我在网络驱动器断开连接的系统上创建 JFileChooser 时 需要很长时间才能显示 JFileChooser 它会通过单个断开连接的网络驱动器阻止 EDT 大约 20 秒 这似乎是一个常见问题 但我找不到解决方法 我见过的可能的选择是
  • Azure 服务总线不断抛出 MessageLockLostException

    我不断得到MessageLockLostExceptions处理消息时 我将 Microsoft Azure ServiceBus 3 2 0 与 NET Core 2 1 一起使用 我有一个队列LockDuration设置为 30 秒 已
  • 在Python中绘制实际设置的项目,而不是项目的数量

    我写了这个小函数 def sets set1 random sample range 1 50 10 set2 random sample range 1 50 10 return set1 set2 sets 该函数的输出如下所示 24
  • 将输出数据写入文本文件在文本文件中给出不完整的结果

    我有 14 个列表 每个列表都有数字或字符串数 据 每个列表的大小为 32561 我必须输出格式如下的文件 list1 element1 list2 element1 list14 element1 list1 element2 list2
  • 如何在 R 中识别/删除非 UTF-8 字符

    当我在 R 中导入 Stata 数据集时 使用foreign包 导入有时包含无效字符UTF 8 这本身就已经够令人不快的了 但是当我尝试将对象转换为JSON 使用rjson包裹 如何识别字符串中无效的 UTF 8 字符并在之后将其删除 另一
  • 如何在 Mac OS X 上安装并运行 XulRunner 应用程序?

    我使用的是 Mac OS X Lion 并且我完全按照本教程进行操作 https developer mozilla org en getting started with xulrunner 当我尝试运行时 Library Framewo
  • 运行线程几秒钟

    我正在使用媒体播放器实例来播放音乐文件 我想播放歌曲一段时间然后停止播放 我正在使用带有计数器递减的线程 但有些无法正常工作 你必须为此使用处理程序 尝试这个 in your onCreate use this start media pl
  • 如何使用多个变量并行运行多个curl请求

    Set Up 我目前有以下脚本可以用来下载文件curl 使用具有多个变量的 ref 文件 当我创建脚本时 它适合我的需求 但是随着参考文件变得更大并且我通过以下方式请求的数据curl生成需要更长的时间 我的脚本现在需要太多时间才能完成 客观
  • 数组在什么情况下会退化为指针?

    我只知道一个案例 当数组传递给函数时 它们会衰减为指针 任何人都可以详细说明数组衰减为指针的所有情况吗 C 2011 6 3 2 1 3 除非它是操作数sizeof运算符 或一元 运算符 or 是用于初始化数组的字符串文字 具有类型的表达式
  • Android Studio - 应用程序不是从最新保存的项目运行的

    几天以来我一直遇到这个问题 我启动 Android Studio 和 Genymotion 打开一个项目 运行应用程序 一切正常 接下来 我通过进行一些更改来编辑我的项目 保存文件 然后再次运行它 但它不会使用我的最新更改运行 而是运行之前
  • 我应该在 debian 上的 openoffice 中使用什么虚拟 X 服务器?

    我需要以批处理模式运行 openoffice 将 doc 文件转换为 pdf 但 openoffice 无法启动 因为它需要 X 服务器 我的linux盒子没有 我周围有一些虚拟的黑洞 X 服务器可以使用吗 我正在使用 Debian 蚀刻
  • 如何在jquery中使用多个“属性等于”选择器?

    如果您想选择一个具有 1 个等于某个值的属性的 jquery 元素 很简单 element attribute1 true hide 但是如果你想选择一个具有 2 个相同属性的元素怎么办 element attribute1 true at
  • 如何以编程方式计算上下文切换?

    在Windows下 有没有办法以编程方式计算同一进程的上下文切换 最好的事情是每当线程切换时都会调用回调 有一个性能计数器这对你有用 您所要做的就是读取它的值 您可以找到有关如何交互式执行此操作的说明here 但也可以使用其 API 来使用
  • Woocommerce 自定义产品类别下拉问题

    我正在为店面主题开发一个儿童主题 我使用产品类别小部件作为标题下的下拉菜单 这完全符合我的需求 尽管我需要相同的 如果可能 下拉菜单显示在每个类别页面上 而不仅仅是主页上 我正在定制这段代码这几乎做到了 WooCommerce Extra