我使用以下功能列出产品类别并按名称排序。自从我上一次将WooCommerce从3.5.7更新到3.6.1以来,它不再起作用。
我写到orderby
的内容没关系。我猜这些词按id排序,顺序与后端相同。
我以前遇到过这个问题,但是后来我添加了'menu_order' => false
并成功了。但是,由于此更新没有任何作用。
$terms = get_terms( 'product_cat', array(
'orderby' => 'name',
'order' => 'ASC',
'parent' => 2063,
'menu_order' => false,
'suppress_filter' => false
) );
我还试图切换主题,但没有成功。 欢迎任何帮助。
我使用WordPress版本5.1.1和Storefront主题版本2.4.5。
答案 0 :(得分:1)
更新2 -已解决
在我报告此issue on Github WooCommerce之后,很明显这是一个在调用
orderby
函数时影响get_terms()
参数的错误。现在已经批准并patched 。Woocommerce更新3.6.2已解决该问题
首先,由于WordPress 4.5分类法应通过get_terms()
函数的参数数组中的“分类”参数进行传递。
您不能使用'menu_order'
和'suppress_filter'
参数,因为对于WP_Term_Query
类,它们未定义。您将使用'menu_order'
代替'orderby' => 'order',
。
现在get_terms()
中列出了WordPress WP_Term_Query
__construct()
函数的允许参数。
是的,您可以使用**“ {orderby
” 参数:**
name
。name
,slug
,term_group
,term_id
,id
,description
,parent
), count
表示术语分类计数,include
匹配$ include参数的order
,slug__in
匹配$ slug参数order
的{{1}} 1}},meta_value
,$ meta_key的值,$ meta_query的数组键或meta_value_num
的值来省略ORDER BY子句。所以您的代码应类似于:
none
经过测试和