Wordpress wp_通过Web上的日期元值查询订单

Wordpress wp_通过Web上的日期元值查询订单,wordpress,woocommerce,Wordpress,Woocommerce,我使用woocommerce来销售报纸,所以我添加了自定义字段来存储发布日期。我想展示按发布日期排序的产品。我使用了以下代码: $args = apply_filters( 'woocommerce_related_products_args', array( 'post_type' => 'product', 'ignore_sticky_posts' => 1, 'no_found_rows' => 1, 'posts_per_page

我使用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_过滤器,正如我在上所看到的那样 但它不起作用。对我来说,我认为问题在于

  • 在不是日期而是字符串的存储值上
  • 即使add_过滤器上的强制转换成功,我也不确定排序功能

    有人有主意吗


  • 您可以修改meta_查询的一些参数,如explain所示。我没有找到
    meta_type
    参数,除了
    order_by
    值。您可以在
    meta\u查询
    数组中定义
    meta\u键
    类型

    类型(字符串)-自定义字段类型。可能的值为“数值”、“二进制”、“字符”、“日期”、“日期时间”、“十进制”、“有符号”、“时间”、“无符号”。默认值为“CHAR”

    仅当 日期以YYYY-MM-DD格式存储,并使用此格式进行测试

    小心你的meta_密钥名称不一样,我认为需要这样做

    希望它能给你一些提示

    $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 )
        ) 
    );