将自定义产品排序设置为默认 Woocommerce 排序选项

2023-12-13

在 Woocommerce 中,我使用以下代码按修改日期向商店目录添加自定义排序选项。

add_filter( 'woocommerce_get_catalog_ordering_args', 'enable_catalog_ordering_by_modified_date' );
function enable_catalog_ordering_by_modified_date( $args ) {
    if ( isset( $_GET['orderby'] ) ) {
        if ( 'modified_date' == $_GET['orderby'] ) {
            return array(
                'orderby'  => 'modified',
                'order'    => 'DESC',
            );
        }
    }
    return $args;
}

add_filter( 'woocommerce_catalog_orderby', 'add_catalog_orderby_by_modified_date' );
function add_catalog_orderby_by_modified_date( $orderby_options ) {
    // Rename 'menu_order' label
    $orderby_options['modified_date'] = __("Sort by modified date", "woocommerce");

    return $orderby_options ;
}

从这个答案:在 Woocommerce 产品排序依据中添加按修改日期排序

我想将该自定义排序选项作为默认排序选项,将默认的 woocommerce 选项(按菜单顺序)作为辅助选项。

如何将此排序设置为 woocommerce 默认排序?


您将使用以下略有不同的版本代码,以及一些附加的挂钩函数:

add_filter( 'woocommerce_get_catalog_ordering_args', 'enable_catalog_ordering_by_modified_date' );
function enable_catalog_ordering_by_modified_date( $args ) {
    if ( isset( $_GET['orderby'] ) ) {
        if ( 'modified_date' == $_GET['orderby'] ) {
            return array(
                'orderby'  => 'modified',
                'order'    => 'DESC',
            );
        }
        // Make a clone of "menu_order" (the default option)
        elseif ( 'natural_order' == $_GET['orderby'] ) {
            return array( 'orderby'  => 'menu_order title', 'order' => 'ASC' );
        }
    }
    return $args;
}

add_filter( 'woocommerce_catalog_orderby', 'add_catalog_orderby_modified_date' );
function add_catalog_orderby_modified_date( $orderby_options ) {
    // Insert "Sort by modified date" and the clone of "menu_order" adding after others sorting options
    return array(
        'modified_date' => __("Sort by modified date", "woocommerce"),
        'natural_order' => __("Sort by natural shop order", "woocommerce"), // <== To be renamed at your convenience
    ) + $orderby_options ;

    return $orderby_options ;
}


add_filter( 'woocommerce_default_catalog_orderby', 'default_catalog_orderby_modified_date' );
function default_catalog_orderby_modified_date( $default_orderby ) {
    return 'modified';
}

add_action( 'woocommerce_product_query', 'product_query_by_modified_date' );
function product_query_by_modified_date( $q ) {
    if ( ! isset( $_GET['orderby'] ) && ! is_admin() ) {
        $q->set( 'orderby', 'modified' );
        $q->set( 'order', 'DESC' );
    }
}

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

enter image description here

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

将自定义产品排序设置为默认 Woocommerce 排序选项 的相关文章

  • Codeigniter PHP - 在锚点加载视图

    我在一个长页面的底部有一个表单 如果用户填写了表单但它不验证页面是否以典型的 codeigniter 方式重新加载 this gt load gt view template data 然而 由于表单位于页面底部 我需要将页面加载到那里 就
  • PHP 读取使用 setcookie() 创建的 cookie

    来自manual https www php net setcookie 直到下一次加载 Cookie 应该可见的页面之前 Cookie 才会变得可见 这意味着创建的 cookiesetcookie将无法访问 COOKIE直到下一页加载 有
  • Symfony2,如何向表单添加隐藏的日期类型字段?

    我正在尝试以下场景 In myclassType public function buildForm FormBuilder builder array options builder gt add day hidden gt add da
  • 转义用户数据,无需魔法引号

    我正在研究如何在来自外部世界的数据被用于应用程序控制 存储 逻辑等之前正确地对其进行转义 显然 随着 magic quote 指令在 php 5 3 0 中很快被弃用 并在 php6 中被删除 对于任何想要升级并进入新语言功能 同时维护遗留
  • 合并两个ActiveRecord数组并按created_at排序

    books Book find all articles Articles find all 通过阅读来自http guides rubyonrails org layouts and rendering html http guides
  • 在 mysqli 准备好的语句程序风格中获取最后插入的 id 的正确方法是什么?

    我正在使用 mysqli 准备好的语句在表中插入记录 如下所示 link mysqli connect localhost my user my password world check connection if link printf
  • php隐藏所有错误[重复]

    这个问题在这里已经有答案了 隐藏的最佳做法是什么allPHP 错误 因为我不想向用户显示错误 我尝试过使用 htacess通过输入代码php flag display errors off在那里 但它返回给我一个500 error 还有其他
  • Zend RegEx Validator 的自定义有意义的错误消息

    我正在验证表单中的文本字段 如下所示 name new Zend Form Element Text name name gt setLabel First Name gt setRequired true gt addFilter new
  • 优雅地退出 Laravel 作用域

    我有一个范围 它根据用户角色以限制方式起作用 您可以将一组规则转发到限制数据库最终输出的范围 一个非常简化的角色限制示例 first name foo 只会返回其记录first name开始于foo 这实际上意味着我已禁止具有该角色的用户查
  • 在 PHP 中将整数转换为十六进制值

    如何将PHP中第一类中的数字转换为第二类中的数字 是否有内置函数来转换数字 也是我的标题 将整数转换为十六进制值 甚至正确 class Permission const READ 1 const UPDATE 2 const DELETE
  • 为什么 asort 适用于多维数组?

    抱歉 如果这是一个非常基本的问题 我无意中发现asort http php net manual en function asort php似乎适用于多维数组 示例 PHP animals array 1 gt array name gt
  • 如何绕过Access-Control-Allow-Origin?

    我正在一个平台上对我自己的服务器进行ajax调用 他们设置了阻止这些ajax调用的平台 但我需要它从我的服务器获取数据以显示从我的服务器数据库检索到的数据 我的 ajax 脚本正在运行 它可以将数据发送到我的服务器的 php 脚本以允许其处
  • PHP 中的异或加密

    我是 Xor 加密的新手 并且在使用以下代码时遇到了一些问题 function xor this string Let s define our key here key magic key Our plaintext ciphertext
  • 2 使用我的代码在数组中查询

    我使用滑块来显示我的 WordPress 精选文章 它选择一个自定义类别并返回一定数量的帖子 如何将显示的第一篇帖子设为自定义帖子 我可以直接在滑块代码中添加特定帖子的 ID吗使该帖子首先出现 然后是原始查询返回的其他内容 例如 在页面上
  • 使用 Xpath 进行部分匹配

    我正在尝试创建一个搜索功能 允许使用 Xpath 按歌曲标题或流派进行部分匹配 这是我的 XML 文件
  • WordPress - 类别和子类别的嵌套列表

    我正在尝试显示带有嵌套子类别的 WordPress 类别列表 到目前为止 我只能获取父类别列表或不包括父类别的子类别列表 但我无法将两者连接在一起 这是我想要创建的结果 Parent Category 子类别 子类别 Parent Cate
  • PHP 中根据相似值对数组进行分组

    我有一个具有以下结构的数组
  • 我如何向 Windows Server IIS 7 中的文件夹授予权限

    我是 PHP 和 Windows Server 新手 在查看我在 PHP 中创建的表单时遇到以下错误 Error in exception handler The stream or file C inetpub wwwroot wrp a
  • 使用 Webmin 设置 cron 作业

    我正在尝试使用 Webmin 设置一个 Cron 作业每 5 分钟运行一次 它需要定位 php 文件并运行该文件中的 php 脚本 当我在 命令 字段中输入文件路径时 它不起作用 我只是想知道我做错了什么 以及我需要 Cron 作业运行的文
  • Google Drive 服务帐户上传的位置

    我正在尝试使用服务帐户将文件上传到我的 Google 云端硬盘 当我部署此代码时 我不希望用户给予授权 我希望他们上传到我的帐户 我通过 PHP 使用它 下面是我到目前为止的情况 这段代码是基于官方文档给出的例子 当我运行 php 脚本时

随机推荐

  • Angular HTTP 循环 [重复]

    这个问题在这里已经有答案了 我对 Angular 应用程序有疑问 我有一个包含语言短代码的数组 en fr 基本上 我希望 Angular 在该数组上循环并对每个值发出 HTTP get 请求 for var i in scope lang
  • 当内容类型为文本/纯文本时,.NET Core 1.0 Web Api 将请求正文处理为 JSON

    我需要使用的供应商 API 正在发送内容类型为 text plain 且正文中为 JSON 的 POST 请求 如何在 net core 1 0 web api中解析它 我确定我需要做类似的事情this 下面的代码 答案 但我不知道如何在
  • 使用 Flexbox 在 Bootstrap3 轮播中垂直居中内容

    我试图将 h3 和 p 元素集中在 div 中 更准确地说是 Bootstrap 的 carousel caption 我已经给 carousel caption 固定的高度和宽度 我试图将 h3 和 p 垂直对齐到 theid 父 div
  • COM 类工厂错误

    我一直在使用我的机器作为服务器来测试应用程序 一切都很顺利 但是当我尝试将其设置为在测试服务器上运行时 出现以下错误 检索 COM 类工厂 CLSID 为 XXXX 的组件因故障而失败 出现以下错误 80040154 有任何想法吗 Than
  • 小于给定数字并且没有重复数字的数字数量

    我们怎样才能找到小于给定数字并且其中没有重复数字的数字的个数 例如 小于100的此类数字的数量为90个 11 22 33 44 55 66 77 88 99有重复数字 因此被排除 同样 对于小于 1000 的数字 如 101 110 122
  • Target="_blank" 与 window.open

    我正在开发一个应用程序 用户输入一些输入 并且在单击共享链接时不应该离开页面 例如Facebook 分享链接 a href https www facebook com sharer php u http 3A 2F 2Fwww examp
  • 如何获取 Go html/template 中地图元素的结构字段?

    我有一个结构Task type Task struct cmd string args string desc string 我初始化了一张采用上述内容的地图Taskstruct 作为一个值和一个string作为键 任务名称 var tas
  • html 中真的需要 name 属性吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 如果 HTML 表单中 name 属性的目的只是为了引用诸如 input 之类的元素 为什么我们不能简单地使用 id 或 class 属性呢 创建名称属性背后是否有一些不那么明显的推
  • CodeIgniter Sqlite 不工作

    每当我在模型中像这样查询数据库 sqlite 时 我使用 codeigniter 完整代码如下 this gt db gt select post query this gt db gt get posts return query gt
  • 如何提取不起作用的 .apk 文件的代码? [复制]

    这个问题在这里已经有答案了 实际上 我试图提取名为 cloudfilz apk 的 apk 文件的代码 并希望在其源代码中进行操作 因此我按照以下步骤操作 创建一个新文件夹并放入 apk 文件 您要解码的 现在用扩展名 zip 重命名此 a
  • 将字体导入 GUI

    除了 swing 似乎附带的基本 5 种字体之外 我正在尝试更改 GUI 的字体 如何导入字体并在我的代码中实际使用它们 默认情况下通常有 5 个以上可用 但它们会因系统而异 该答案检查现有字体 以及如何加载和注册新字体 它使用 Airac
  • Java 的迁移[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我使用 ruby on Rails 和 Java 当我从事 Rails 项目时 我真的很喜欢使用迁移 所以我想知道是否有类似 Java 的迁移工具
  • 我应该为 Selenium By.XPATH 导入什么?

    新版本的 Selenium 没有任何旧方法 例如 find element by xpath 但它引入了新的 fabrique 方法 find element By XPATH searched string 这是来自的示例文档 veget
  • 多种语言一起编译

    是否可以将多种语言一起编译 以便充分利用不同语言的优点 绝对有可能link如果编译器和链接器全部兼容 则在单独编译它们之后将它们放在一起 如果适当编程 例如 g77 c one f gcc c two c gcc o together on
  • 可变参数模板异构容器

    我需要使用异构元素实现一些可变模板容器类 它允许迭代这些元素 我的第一个想法是使用带有可变参数的 std tuple 成员创建类 但是通过类似数组的方式 通过循环 从元组获取元素是不可能的 struct A void prnt std co
  • 如何在 VB6 中使用 MSHTML 解析器去除所有 HTML 标签?

    如何在 VB6 中使用 MSHTML 解析器去除所有 HTML 标签 这是改编自 CodeGuru 的代码 非常感谢原作者 http www codeguru com vb vb internet html article php c481
  • WriteFile 返回错误 1784

    我正在创建一个程序来使用虚拟文件系统填充磁盘 目前 我正在使用编写可变大小的文件WriteFile WriteFile hFile FileData i 1024 dwWrote NULL err GetLastError 错误返回 178
  • 防止WebView显示“网页不可用”

    我有一个广泛使用 WebView 的应用程序 当此应用程序的用户没有互联网连接时 会出现一个页面 显示 网页不可用 和各种其他文本 有没有办法不在我的 Web 视图中显示此通用文本 我想提供我自己的错误处理 private final Ac
  • LINQ to Entities 无法识别“System.DateTime Parse(System.String)”方法

    我是 Linq 的新手 下面的查询不断返回 无法识别 System DateTime 错误 我尝试过解析和转换 但都不起作用 这是我的查询 mrcEntities 上下文 GetContext var query from c in con
  • 将自定义产品排序设置为默认 Woocommerce 排序选项

    在 Woocommerce 中 我使用以下代码按修改日期向商店目录添加自定义排序选项 add filter woocommerce get catalog ordering args enable catalog ordering by m