ну это не тупость, просто уточнение от непонимания
тогда если вы уже создали вам внизу выдает код <script ...>...</script> такого вида. Вам нужно его вставить в нужное место в шаблоне сайта или посте...
вам просто нужно скопировать код, который получите при создании карты и вставить
https://tech.yandex.ru/maps/tools/constructor/ - тут создавать - лучше залогиниться, чтобы можно было править
if (($_GET['sort_type']) != '') { $args['meta_key'] = 'price'; $args['orderby'] = 'meta_value_num'; $args['order'] = $_GET['sort_type']; }
не внимательностью всегда отличался)) но это не понимание с моей стороны было....
спс за поддержку
это go_filter()
$args = array( 'post_type' => 'post', 'posts_per_page' => -1, 'meta_key' => 'price', 'orderby' => 'meta_value_num', 'order' =>$_GET['sort_type'], 'cat' => 65);query_posts($args);
вот так сортирует
на wp_query не исправил....
wp_reset_query() это не помогло...
Видимо косяк в функции go_filter()
$args['meta_query'][] = array( 'meta_key' => 'price', 'orderby' => 'meta_value_num', 'order' => $_GET['sort_type'] );
['meta_query'] - вот это мне кажется лишним... но его удаление не помогает...
'meta_key' => 'age',
'orderby' => 'meta_value_num',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => 'age',
'value' => array(3, 4),
'compare' => 'IN',
)
тут orderby, order, meta_key не относятся к массиву meta_query
$arg = array( 'post_type' => 'post', 'posts_per_page' => -1, 'meta_key' => 'price', 'orderby' => 'meta_value_num', 'order' => 'ASC', // DESC 'cat' => 65 ); if ($_GET && !empty($_GET)) { // если было передано что-то из формы go_filter($arg); // запускаем функцию фильтрации } /* FILTER */ function go_filter(&$arg){ $args['meta_query']['relation'] = 'AND'; global $wp_query; if($_GET['price_min'] != '' || $_GET['price_max'] != '') { if ($_GET['price_min'] == '') $_GET['price_min'] = 0; if ($_GET['price_max'] == '') $_GET['price_max'] = 9999999; $args['meta_query'][] = array( 'key' => 'price', 'value' => array( (int)$_GET['price_min'], (int)$_GET['price_max'] ), 'type' => 'numeric', 'compare' => 'BETWEEN' ); } if (($_GET['tax_vehicle_type']) != '') { $args['meta_query'][] = array( 'key' => 'class_auto', 'value' => $_GET['tax_vehicle_type'], 'compare' => '=' ); } if (($_GET['tax_vehicle_status']) != '') { $args['meta_query'][] = array( 'key' => 'kpp', 'value' => $_GET['tax_vehicle_status'], 'compare' => '=' ); } if (($_GET['sort_type']) != '') { $args['meta_query'][] = array( 'meta_key' => 'price', 'orderby' => 'meta_value_num', 'order' => $_GET['sort_type'] ); } query_posts(array_merge($args, $wp_query->query)); }
и так не решает проблему...
да вы можете сами потестить, посту создать доп поле price, забить 2 поста с ценами и скопировать коды
работает только по возростанию. Но я думаю она работает отсюда
query_posts(array( 'post_type' => 'post', 'posts_per_page' => -1, 'meta_key' => 'price', 'orderby' => 'meta_value_num', 'order' => 'ASC', 'cat' => 65));
есть такая мысль, что это код надо заменить на wp_query... и
$args = array( 'post_type' => 'post', 'category__in' => 65, 'posts_per_page' => -1, 'meta_key' => 'price', 'orderby' => 'meta_value_num', 'order' => 'ASC',);$wp_query = new WP_Query($args);
а потом уже изменять сам вывод также как выше...
$args['meta_query']['relation'] = 'AND';
так работает, но все время выводится по возростанию...
То есть как и до фильтрации...
//$args['meta_query'] = array('relation' => 'AND'); // надо $args['meta_query'] = array(); $args['meta_query']['relation'] => 'AND'; // и далее как есть.. // $args['meta_query'][] = array(...
нет, так получается ошибка (белый экран)
if(($_GET['price_min'] != '') || ($_GET['price_max'] != ''))
if ($_GET && !empty($_GET))
if (isset($_GET['tax_vehicle_type']) && $_GET['tax_vehicle_type'])
Спасибо, но хотелось бы больше по функционалу..
забил на ajax. Решил сделать с перезагрузкой...
Но блин не работает сортировка по цене...
<?php query_posts(array( 'post_type' => 'post', 'posts_per_page' => -1, 'meta_key' => 'price', 'orderby' => 'meta_value_num', 'order' => 'ASC', 'cat' => 65 )); ?> <?php if ($_GET && !empty($_GET)) { // если было передано что-то из формы //go_filter(); // запускаем функцию фильтрации } ?>
Этот код, что выше - перед циклом...
/* FILTER */ function go_filter(){ $args = array(); // подготовим массив $args['meta_query'] = array('relation' => 'AND'); global $wp_query; if($_GET['price_min'] != '' || $_GET['price_max'] != '') { if ($_GET['price_min'] == '') $_GET['price_min'] = 0; if ($_GET['price_max'] == '') $_GET['price_max'] = 9999999; $args['meta_query'][] = array( 'key' => 'price', 'value' => array( (int)$_GET['price_min'], (int)$_GET['price_max'] ), 'type' => 'numeric', 'compare' => 'BETWEEN' ); } if (($_GET['tax_vehicle_type']) != '') { $args['meta_query'][] = array( 'key' => 'class_auto', 'value' => $_GET['tax_vehicle_type'], 'compare' => '=' ); } if (($_GET['tax_vehicle_status']) != '') { $args['meta_query'][] = array( 'key' => 'kpp', 'value' => $_GET['tax_vehicle_status'], 'compare' => '=' ); } if (($_GET['sort_type']) != '') { $args['meta_query'][] = array( 'meta_key' => 'price', 'orderby' => 'meta_value_num', 'order' => $_GET['sort_type'] ); } query_posts(array_merge($args, $wp_query->query)); }
Это функция, которая фильтрует. Но не работает сортировка по цене... где косячу?