我正在使用woocommerce销售报纸,所以我添加了自定义字段来存储发布日期。我想展示按发布日期排序的产品。我使用了以下代码:
$args = apply_filters( 'woocommerce_related_products_args', array(
'post_type' => 'product',
'ignore_sticky_posts' => 1,
'no_found_rows' => 1,
'posts_per_page' => $posts_per_page,
'meta_query' => array(
array(
'key' => 'wccaf_de',
'value' => $name,
'compare' => 'LIKE',
),
),
'meta_key' => 'wccaf_release_date',
'meta_type' => 'DATE',
'orderby' => 'meta_value_date',
'order' => 'ASC',
'post__not_in' => array( $product->id )
) );
$products = new WP_Query( $args );
我还尝试使用add_filter,因为我在https://konstantin.blog/2012/order-by-post-meta-casted-date-wp_query/上看过 但它没有用。对我来说,我认为问题是
即使add_filter上的强制转换成功,我也不确定排序功能
有人有想法吗?
答案 0 :(得分:0)
您可以将一些参数修改为meta_query,如解释Here。除了meta_type
值之外,我找不到order_by
参数。您可以在meta_key
数组
meta_query
类型
type(string) - 自定义字段类型。可能的值包括“数字'”,“' BINARY'' CHAR'' DATE',' DATETIME',&# 39; DECIMAL',' SIGNED',' TIME',#39; UNSIGNED'。默认值为' CHAR'。
'类型' DATE适用于'比较'价值只有当 日期以YYYY-MM-DD格式存储,并以此格式进行测试。
$args = apply_filters( 'woocommerce_related_products_args', array(
'post_type' => 'product',
'ignore_sticky_posts' => 1,
'no_found_rows' => 1,
'posts_per_page' => $posts_per_page,
'meta_query' => array(
array(
'key' => 'wccaf_release_date',
'value' => $name,
'compare' => 'LIKE',
'type' => 'DATE'
),
),
'meta_key' => 'wccaf_release_date',
'orderby' => array('meta_type'=> 'DATE'),
'order' => 'ASC',
'post__not_in' => array( $product->id )
)
);
小心你的meta_key名称不一样,我认为它需要。
希望它能给你一些提示!