Intereting Posts
wp-cli отображает только версию PHP для всех параметров ввода Обновить значение пользовательской таксономии для публикации на основе настраиваемого поля даты Как добавить запись «ВСЕ КАТЕГОРИИ» в wp_dropdown_categories? Отдельные события в качестве субстраницы на главную страницу календаря Контактная форма 7 плагин обновить страницу на submit Применить класс Post к пользовательскому типу сообщения WordPress очищает пользовательский query_var, чтобы избежать инъекций sql? Довольно постоянное значение для результатов поиска с дополнительным запросом var Удаление кнопок из редактора html Как добавить пользовательские поля в пользовательский тип сообщения? Фильтрация пользовательского типа сообщений путем сравнения даты и двух мета-ключей Вызов каталогов для загрузки в wordpress если сообщение имеет контент Могу ли я разделить страницы на категории? Как получить короткий код в выдержке, чтобы следовать документу

Запрос Woocommerce по ценовому диапазону и пользовательскому мета-ключу

Я написал функцию для получения продуктов по ценовому диапазону. Все работает, но теперь мне нужно добавить дополнительный мета-ключ, который будет выглядеть как 50 – 100 и будет показан, но код не возвращает никаких продуктов. Что не так в этом коде?

function product_price_filter_box($attr) { $limit = intval($attr['limit']); $min = intval($attr['min']); $max = intval($attr['max']); $query = array( 'post_status' => 'publish', 'post_type' => 'product', 'posts_per_page' => $limit, 'meta_query' => array( 'relation' => 'AND', array( 'key' => '_price', 'value' => array($min, $max), 'compare' => 'BETWEEN', 'type' => 'NUMERIC' ), array( 'key' => 'featured', 'value' => '1', 'compare' => '=', ), ) ); $wpquery = new WP_Query($query); while ( $wpquery->have_posts() ) : $wpquery->the_post(); global $product; wc_get_template_part( 'content', 'product' ); endwhile; wp_reset_query(); } add_shortcode( 'product_price_filter_box', 'product_price_filter_box' ); 

Solutions Collecting From Web of "Запрос Woocommerce по ценовому диапазону и пользовательскому мета-ключу"

Мета-ключ признанного продукта _featured , но вы используете в своем мета-запросе. Это не возвращает никаких продуктов, поскольку ключ не существует.

Кроме того, насколько мне известно, значение ключа yes , поэтому ваши аргументы должны быть такими:

 array( 'key' => '_featured', 'value' => 'yes', ) 

Еще одно замечание – использовать правильный способ получить атрибут shortcode. Вы можете сделать это, используя функцию shortcode_atts() . Вот синтаксис для вашего случая:

 $atts = shortcode_atts( array( 'limit' => '20', 'min' => '1' 'max' => '2' ), $atts, 'product_price_filter_box' ); $limit = intval($atts['limit']); $min = intval($atts['min']); $max = intval($atts['max']); 

Вы можете ограничить максимальные должности, которые пользователь может получить. Это можно сделать с помощью функции min() :

 $limit = min(20, $limit); 

И последнее замечание. Если вы используете WP_Query , вы должны использовать wp_reset_postdata(); вместо wp_reset_query(); , который используется после использования query_posts(); ,