Intereting Posts
Удалите кнопку «Get Shortlink» в администраторе настраиваемого типа сообщения Как разместить меню в левой части страницы в WordPress 3.5 Как загрузить активы на основе пользовательского значения поля? Div вокруг видео YouTube Пустая выдержка с использованием wp_get_recent_posts Добавление Dropbox dropin js с помощью wp_enqueue_script Возможно ли, чтобы весь список POST был включен в список, <li> Используйте плагин или пользовательский тип сообщения для функциональности игрового счета Использование CSS-идентификаторов и классов с изображениями в WordPress Horizontal Menu Плагин или короткий код для номера ISBN? Отправляет электронную почту администратору с автором сообщения numberposts? showposts? posts_per_page? Контекстно-ориентированные виджеты. Моя работа продолжается Добавить дополнительные поля для добавления новой страницы категории Добавить фильтр таксомии в запрос одиночной почты?

Сортировка WP_Query по meta_value_num или дате

Я использую meta_value_num для сортировки сообщений по цене и позволяет пользователям использовать раскрывающийся список для изменения между max и min. Теперь мне нужна возможность выбирать из Min Price или Max Price или Newest Posted или самой старой. Можно ли сортировать по нескольким значениям?

Запрос WP

 $args = array( 'order' => $_POST['date'], 'orderby' => 'meta_value_num date', 'post_type' => 'product', 'meta_key' => 'ek-product-price', ); 

форма

  <select id="select1" type="text" name="date"> <!-- FIRST 2 OPTIONS FOR SORT BY PRICE META VALUE --> <option value="ASC" type="hidden">ASC</option> <option value="DESC" type="hidden">DESC</option> <!-- ADD IN OPTION FOR SORT BY DATE ADDED --> </select> 

Solutions Collecting From Web of "Сортировка WP_Query по meta_value_num или дате"

Получил его работу со следующим методом. Вероятно, есть лучший способ сделать это, но это достаточно хорошо для его цели.

Добавлен оператор IF для опций

 if($_POST['date'] === 'HIGH'){ $order = 'meta_value_num'; $sort = 'DESC'; } elseif ($_POST['date'] === 'LOW'){ $order = 'meta_value_num'; $sort = 'ASC'; } elseif ($_POST['date'] === 'ASC'){ $order = 'date'; $sort = 'ASC'; } elseif ($_POST['date'] === 'DESC'){ $order = 'date'; $sort = 'DESC'; } 

Тогда внутри $ args

 $args = array( 'order' => $sort, 'post_type' => 'product', 'meta_key' => 'ek-product-price', 'orderby' => $order, ) 

форма

 <select id="select1" type="text" name="date"> <option value="ASC" type="hidden">ASC</option> <option value="DESC" type="hidden">DESC</option> <option value="HIGH" type="hidden">HIGH</option> <option value="LOW" type="hidden">LOW</option> </select>