• Все привет. Хочу отсортировать по произвольному полю мои посты. Поле создал в ACF (тип Date picker), в acf имя далось ему event_date_post. Вот такой код использую

    
    $args = array( 'post_type' => 'cas_events', 
    	'posts_per_page' => 6,
    	'meta_query' => array(
    		'event_date' => array(
    			'key'     => 'event_date_post',
    			'type'    => 'DATE',
    			'compare' => 'IN',
    		),
    	),
    	'orderby' => array( 'event_date'=>'DESC' ),
    );
    $loop = new WP_Query( $args );
    

    Но что то он не сортирует ничего. Что может быть не так?

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Модератор Юрій

    (@yube)

    ‘compare’ => ‘IN’,

    Это зачем? С чем значение должно сравниваться, если в meta_query нет ‘value’?

    В meta_value дата пишется в каком формате? Типы DATETIME и DATE подразумевают формат, принятый в mysql.

    Формат DATE (F j, т.е. Maj 20). Ммм… Я этот compare убирал, но ничего не менялось. А если убрать type, то он сортирует, но по числу, который в этом поле есть. А хотелось бы по дате.

    Модератор Юрій

    (@yube)

    Формат DATE (F j, т.е. Maj 20).

    CAST, и именно он порождается генератором, такие конструкции не понимает. Меняйте на Y-m-d, если говорить по-php-шному.

    Сортировку по дате без года, боюсь, через вордпрессовский генератор сделать не получится, скорее всего, придется писать ORDER BY вручную.

    Модератор Юрій

    (@yube)

    И я бы рекомендовал поставить плагин Query Monitor или аналогичный, чтобы наглядно видеть, какой именно SQL-запрос(ы) получаются на выходе. WP_Query штука довольно универсальная (уже), но отнюдь не всеобъемлющая, так что иногда приходится и ручками запросы писать.

    Ага, ок. Спасибо большое за ответы

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Сортировка по произвольному полю» закрыта для новых ответов.