Intereting Posts
Какая разница, если я включу поддержку формата видеопоста? Обновляются или строятся сообщения из версий + автосохранения? Сообщения в блогах повторяются множественные установки WordPress с общей пользовательской базой данных, но отдельные базы данных контента Как я могу ограничить количество комментариев на зарегистрированного пользователя в день? API настроек – дезинфекция URL-адресов, адресов электронной почты и текста Media Modal не обновляется с загрузкой файла Условный оператор single.php, не распознающий условные обозначения get_posts $ args не будет принимать массив как один из критериев? Хотите добавить корзину и строку поиска справа от линии логотипа Исключить все сообщения, у которых нет назначенного тега Подтвердить удаление не найдено Являются ли шорткоды чувствительными к регистру? Какие детали необходимы для заголовка файла Style.css? Получать информацию о архивах одного сообщения

Как сделать wp_query с двумя полями acf, сортируя по одному из них

У меня есть два дополнительных пользовательских поля, footnote и date_edited (поле datepicker ). То, что я хочу достичь, – запустить wp_query, где сноска не пуста. Результат я хочу отсортировать на основе date_edited .

Я попробовал несколько решений, не имея возможности решить эту проблему.

Это моя лучшая попытка:

$args = array( 'post_type' => 'page', 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'footnote', 'value' => array(''), 'compare' => 'NOT LIKE' ), array( 'key' => 'date_edited', 'value' => array(''), 'type' => 'DATE', 'compare' => '=' 'orderby' => 'meta_value_num', 'order' => 'DESC' ) ), 'post_status' => 'publish', 'posts_per_page' => 10, 'no_found_rows' => true ); 

Очевидно, что это не работает. -Изначит, это неверный массив date_edited . Кто-нибудь видит мои ошибки и имеет правильное решение для показа?

EDIT после того, как @majick ответил

Это работает. И небольшая модификация предложения @ majick:

 $args = array( 'post_type' => 'page', 'meta_query' => array( array( 'key' => 'footnote', 'compare' => 'EXISTS', ), ), 'post_status' => 'publish', 'posts_per_page' => 10, 'no_found_rows' => true, 'orderby' => 'meta_value_num', 'meta_key' => 'date_edited', 'order' => 'DESC' ); 

Solutions Collecting From Web of "Как сделать wp_query с двумя полями acf, сортируя по одному из них"

Вы просто путаете уровни массива, упорядочение выполняется не внутри уровня meta_query, а на основном уровне запросов. Это разница между двумя классами:

https://codex.wordpress.org/Class_Reference/WP_Query https://codex.wordpress.org/Class_Reference/WP_Meta_Query

Кроме того, поскольку мета-запрос codex говорит: «Пользовательское значение поля может быть массивом только при сравнении:« IN »,« NOT IN »,« BETWEEN »или« NOT BETWEEN »» … Я думаю, вам действительно нужно НЕ EQUALS здесь, чтобы проверить значение сноски установлено … Я не думаю, что вам нужно проверить, существует ли date_edited, поэтому у вас есть гораздо более простой запрос:

 $args = array( 'post_type' => 'page', 'meta_query' => array( 'key' => 'footnote', 'value' => '', 'compare' => 'NOT EQUALS' ), 'post_status' => 'publish', 'posts_per_page' => 10, 'no_found_rows' => true, 'orderby' => 'meta_value_num', 'meta_key' => 'date_edited', 'order' => 'DESC' ); 

Надеюсь, это поможет … и что ваша лихорадка сломалась? 🙂