Я работаю над пользовательским шаблоном страницы терминов таксономии, в котором мы хотим, чтобы элементы, связанные с термином, были отсортированы по дате публикации (поле настраиваемой даты) - и если в один и тот же день есть несколько элементов (отформатированных как YYYY-MM- DD) затем сортировать их по заголовку и, наконец, сортировать по заголовку, если пользовательское поле не было заполнено (более старые элементы).
Итак, я попробовал его сотнями разных способов с WP_query, и он возвращает большинство результатов так, как я хочу - но в этом случае он возвращает только те элементы, которые имеют meta_key of публикации_даты. Все остальные элементы игнорируются и не отображаются. Я попробовал meta_query, используя отношение "или", и сравнил публикации_даты как EXISTS, а не EXISTS, но это вернуло мне 0 результатов.
Кроме того, на сайте все еще работает 3.5.2, и они не хотят обновляться.
Вот мой последний запрос, который возвращает мне сообщения, в которых настраиваемое поле publishing_date отображается в правильном порядке:
$term = get_queried_object(); // find the term of the taxonomy page we are on
$wp_query = new WP_Query( array(
'post_type' => 'resource',
'tax_query' => array(
array(
'taxonomy' => 'resource_types',
'field' => 'slug',
'terms' => $term->name,
)),
'meta_key' => 'publication_date',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'paged' => $paged,
'posts_per_page' => '10',
));
Я также попытался использовать wpdb и выполнить SQL-запрос, но я действительно не уверен, как выполнить то, что я хочу сделать. Если бы кто-то мог мне помочь, это было бы здорово!
Заранее спасибо.
'meta_query' => array( 'relation' => 'OR', array( //check to see if date has been filled out 'key' => 'publication_date', 'compare' => '!=', 'value' => date('Y-m-d'), ), array( //if no date has been added show these posts too 'key' => 'publication_date', 'value' => date('Y-m-d'), 'compare' => 'NOT EXISTS' ) ),
но порядок не работает: \