Использование get_posts для получения продукта, ближайшего к сегодняшней дате, с мета-датой - не работает - PullRequest
0 голосов
/ 09 октября 2018

Доброе утро,

В настоящее время я пытаюсь получить продукт fooevents, который ближе всего к сегодняшней дате, и определенной категории продуктов.Я использую следующий код:

$lastposts = get_posts(array(
    'post_type'=>'product', 
    'posts_per_page' => 1,
    'numberposts'      => 1,
    'tax_query' => array(
        array('taxonomy' => 'product_cat','field' => 'slug', 'terms' => 'standard-ferry-service' )
    ),
    'order' => 'ASC',
    'orderby'   => 'meta_value',
    'meta_key' => 'WooCommerceEventsDate',
    'meta_type' => 'DATE',
    'meta_query' => array(
        array(
            'key'       => 'WooCommerceEventsDate',
            'compare'   => '>=',
            'value'     => date('F d, Y'),
            'meta_type' => 'DATE',
        )
    )
));

Однако это похоже на случайный случайный продукт / событие.Кто-нибудь может увидеть, если я написал что-то не так?Пройдет только пункт категории, это хорошо, просто он не подходит.

Большое спасибо заранее за любую помощь или совет.

1 Ответ

0 голосов
/ 09 октября 2018

Я думаю, что проблема связана с тем, что временные метки хранятся в БД в виде строк, поэтому сравнение не работает.С NUMERIC ваша строка должна быть приведена к int и позволить сравнивать

$lastposts = get_posts(array(
    'post_type'=>'product', 
    'posts_per_page' => 1,
    'numberposts'      => 1,
    'tax_query' => array(
        array('taxonomy' => 'product_cat','field' => 'slug', 'terms' => 'standard-ferry-service' )
    ),
    'order' => 'DESC',
    'orderby'   => 'meta_value',
    'meta_key' => 'WooCommerceEventsDate',
    'meta_query' => array(
        array(
            'key'       => 'WooCommerceEventsDate',
            'compare'   => '>=',
            'value'     => date('Y-m-d'),
            'type'      => 'NUMERIC' //casting to int
        )
    )
));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...