Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何按发布日期而不是菜单顺序对产品进行排序?_Php_Wordpress_Filter_Woocommerce_Hook - Fatal编程技术网

Php 如何按发布日期而不是菜单顺序对产品进行排序?

Php 如何按发布日期而不是菜单顺序对产品进行排序?,php,wordpress,filter,woocommerce,hook,Php,Wordpress,Filter,Woocommerce,Hook,我可以在wordpress functions.php文件中添加哪些代码/过滤器,以按发布日期而不是菜单顺序修改分组产品的顺序 我很确定您可以挂接到它,但不确定如何配置以下过滤器/挂接正如您所提到的,您只需要过滤通过woocommerce\u group\u children\u args过滤器传递的$args add_filter( 'woocommerce_grouped_children_args', 'so_29973708_grouped_children_args' ); funct

我可以在wordpress functions.php文件中添加哪些代码/过滤器,以按发布日期而不是菜单顺序修改分组产品的顺序


我很确定您可以挂接到它,但不确定如何配置以下过滤器/挂接

正如您所提到的,您只需要过滤通过
woocommerce\u group\u children\u args
过滤器传递的
$args

add_filter( 'woocommerce_grouped_children_args', 'so_29973708_grouped_children_args' );
function so_29973708_grouped_children_args( $args ){
    $args['orderby'] = 'date';
    $args['order'] = 'DESC';
    return $args;
}
如果你需要了解过滤器的帮助,我写了一篇我认为非常好的教程


更新如果您没有看到任何更改,则分组产品的子项可能已存储在瞬态中。您需要立即删除此瞬态以查看更改。您可以通过管理员清除所有WooCommerce产品瞬态。导航到
WooCommerce>System Status>Tools
并单击按钮以清除瞬变。

您可能要做的是
首先删除\u过滤器
,然后根据您试图覆盖的默认WooCommerce过滤器进行自定义,尽管我认为您的此代码在技术上应该可以工作。可能对传递给它的数组执行
var\u dump
,并查找其结构。嗨,凯西,谢谢你帮助我更好地了解如何配置过滤器。不幸的是,在我将您提供的代码片段添加到我的子主题的functions.php文件后,它似乎不起作用。不太清楚为什么,但在阅读了有关如何使用过滤器的教程后,还向您的网站发送了一条单独的消息。更新清除产品瞬变解决了问题。自从从3.0中删除此过滤器后,有什么想法吗?@Christina目前没有。我无法定位从数据库中保存/检索组的子项的位置。
add_filter( 'woocommerce_grouped_children_args', 'so_29973708_grouped_children_args' );
function so_29973708_grouped_children_args( $args ){
    $args['orderby'] = 'date';
    $args['order'] = 'DESC';
    return $args;
}