Поддержка Проблемы и решения Рашриреный поиск по параметрам

  • Уважаемые присутствующие, подскажите направление движения к решению задачи! (сайт — типа каталог автомобилей, с доп. полями)
    Необходим поиск авто по параметрам:выберите модель (будет селект), цена (от и до — диапазон), Б/У или новый (селект) и так далее….

    Заранее благодарен всем кто уже помогал или еще поможет! 🙂

Просмотр 10 ответов — с 1 по 10 (всего 10)
  • Это не проблема, это задача)

    Модератор Yuri

    (@yube)

    Подсказываю: смотрите в сторону плагинов Custom Field Template, Custom Fields Search и т.п.

    Спасибо Юрий, посмотрю, даже не сомневаюсь что Ваш совет как всегда дельный, но мне интересней самому код написать, (может быть это уже кем-то решалось?) то есть, я сделаю отдельную страницу на которую буду выводить результаты поиска. Поэтому интересен опыт решения. Гребнев, есть идеи как решить задачу?

    Модератор Yuri

    (@yube)

    Юрий, я правильно понял, $query = new WP_Query( ‘meta_key=color’ ); выдаст посты у которых вообще присутствует дополнительное поле КОЛОР???

    Модератор Yuri

    (@yube)

    Похоже на то, если ‘КОЛОР’ == ‘color’ 🙂

    Только не выдаст, а выберет. Для собственно вывода надо эту выборку прогнать через Цикл (Loop).

    это понятно, просто тут куча сопутствующих вопросов возникла, такую задачу никогда еще не решал. Но все по-порядку!
    1. Как отобрать посты в которых вообще ПРИСУТСТВУЕТ определенное доп.поле?

    <?php $args = array(
    ‘post_type’ => ‘gtcd’, // отобрали тип постов
    ‘meta_query’ => array( // запрос дополнительных полей
    array(
    ‘key’ => ‘color’, // поле колор
    ‘value’ => ‘blue’, // значение синий
    ‘compare’ => ‘NOT LIKE’ // отбираем НЕ синий
    ),
    array(
    ‘key’ => ‘price’, // поле цена
    ‘value’ => array( 20, 100 ), // должно лежать в пределах 20 — 100
    ‘type’ => ‘numeric’, // что это???????
    ‘compare’ => ‘BETWEEN’ // строковое значение должно быть между 20 и 100 поля прайс
    )
    )
    );
    $query = new WP_Query( $args );
    ?>

    Вот как я понял эту функцию, непонятен остался тип? что это??? и еще не дошел как проверить существует ли вообще определенное доп. поле, то ч то выше описал

    @valentin5 type это тип значения, по которому проводить поиск, например «20» может быть числом, а может быть и строкой, «2012-11-12» может быть строкой, а может быть и датой. В остальном всё вроде верно, несколько лет назад решал подобную задачу для сайта по недвижимости, только тогда meta_query и tax_query ещё не было 🙂

    Ещё учтите, что если у вас база данных большая (миллионы записей), то это всё может тормозить, поскольку meta_query чаще всего будут делать CAST() на meta_value, соответственно индексами MySQL пользоваться не будет.

    Спасибо Konstantin Kovshenin! с типом разобрался, а как выбрать посты в которых вообще существует определенное доп. поле?
    и 2-е! я в процессе обнаружил у себя еще одно непонимание! вот сделали форму, заполнили переменные, если переменную не трогали — она не имеет значения и мы по ней не ищем, А ПОТОМ ВСЕ ПОЛУЧЕННЫЕ ПЕРЕМЕННЫЕ ПЕРЕДАЕМ В ФАЙЛ ОБРАБОТЧИК С ЧУТЬ ИЗМЕНЕННЫМ ШАБЛОНОМ КАТЕГОРИИ ДОПУСТИМ. А НАХОДЯСЬ В ЭТОМ САМОМ РЕЗУЛЬТАТЕ ПОИСКА ОПЯТЬ ПОСЕТИТЕЛЬ ЗАПОЛНЯЕТ ФОРМУ, КАК ВЫЗЫВАТЬ ОБРАБОТЧИК???

Просмотр 10 ответов — с 1 по 10 (всего 10)
  • Тема «Рашриреный поиск по параметрам» закрыта для новых ответов.