Content of the page

Step-by-step – на Русском

Content of the article

Начальные действия в создании фильтров

(краткий конспект в pdf формате)

(видео уроки)

  1. Установите и активируйте плагин
  2. Далее идём сразу в настройки плагина /wp-admin/edit.php?post_type=meta_data_filter&page=mdf_settings  проставляем типы постов с которыми хотим работать.
  3. Плагину абсолютно всё равно есть вукомерц или нет, для него это всего лишь кастомный тип поста products, и работа с woocommerce продуктами вообще ничем не отличается от сборки фильтров для любого типа поста.
  4. Далее создаём категорию фильтров: категорий фильтров может быть сколько угодно. Смысл их существования это объединение фильтров в группы, где фильтр это кастомный пост тип meta_data_filter: где добавляются сами html элементы поисковой формы для фильтрации: таксономии,чекбоксы,селекты, рендж-слайдеры, календари и textinputs: В ОДНОМ любом посте который хотим добавить в поиск можно выбрать только ОДНУ фильтр-категорию!! Вопрос, а зачем их создавать много. Ответ: если на сайте есть несколько кастомных типов постов, например книги и фитнес-центры - то понятно что характеристики по которым их надо фильтровать совершенно разные, и пихать в виджет сразу всё что можно фильтровать на сайте не разумно. Или например пусть даже будет 1 кастом тип - недвижимость, но она тоже есть разная и мы бы хотели фильтровать её разными фильтрами, типа коммерческая, дома, съёмные квартиры - у них у всех интересующие конечного потребителя параметры разные, так что под них надо делать разные фильтры, которые объединять в разные категории.
  5. Всё, создали нашу категорию-фильтров. Далее начинаем согласно хотелкам делать сами фильтры. Жмём Add new Filter называем его как хотим, например Основные параметры, и сразу Prepend item или Append Item - разницы пока что нет. Prepend - добавить html-элемент в самое начало, Append - в самый конец, это всё для удобства только, если надо поменять очерёдность элементов, то это можно сделать перетаскиванием мышью. Item Name - Вводим название, начнём с range-slider и пусть будет это цена.
  6. Пишем слово "Цена", жмём Toggle раскрылся весь блок, Item Type - выбираем range slider, ставим диапазон цен, например от 0 до 1000 - 0^1000. Сразу может возникнуть вопрос, а что если есть товары до 1000 а парочку за 5000, ставить до 5000 диапазон как то неудобно. Ничего страшного есть пара интересных моментов, например у нас 8 постов до 1000$ и 2 по 5000$. Так вот если посетитель сайта потянет левый ползунок от нуля, а правый не будет трогать, то аякс пересчитает и покажет все посты включая и эти по 5000$ так как по логике он посчитает от меньшего выбранного до бесконечности, соответственно и в результат упадёт эти два поста по 5000. А если он кинет левый ползунок в крайнее правое положение, то есть в 1000, то будут показывается только эти позиции которые больше 1000. То есть из поиска ничего не выпадает.
  7. Далее по параметрам range-slider всё просто: step - шаг, ставим 1 или 100, или даже 0.1 если нам надо не цена, а что то иное. Префикс и суффикс - обычно знаки денег. Item description - описание этого элемента на фронте для ваших элементов в виде тултипа на фронте сайта если вы посчитаете что посетителям может быть что то не понятно в этом элементе фильтра:
  8. Жмём Опубликовать. У нас получилось что то типа такого:
  9. Далее нам надо добавить пару чекбоксов (зима+лето) и селект. Можем поступить следующим образом: добавить эти элементы тут же в этой же секции или создать новую секцию, так как элементов немного, то добавим новые элементы в эту же секцию. Хотя вот пример когда надо создавать систему фильтров секциями, для какого нибудь товара: http://general.wp-filter.com/category/notebook-posts/
  10. Чекбоксы добавляются проще всего: Apend Item и пишем название, всё даже не надо открывать сам блок так как по умолчанию добавляемый новый элемент и есть чекбокс.
  11. Добавляем селект, жмём Append Item, в названии элемента пишем например "страны производители", Item type выбираем как drop-down, опции селекта добавляются нажатием кнопки Prepend drop-down option или Append drop-down option опять же это всё для удобства, и если надо то опции селекта перетаскиваются мышью, и при надобности удаляются кнопкой с крестом справа.
  12. Получилось что то вроде такого:  ВНИМАНИЕ: после сохранения этого нового селекта, рядом появятся новые текстинпуты с ключами для каждой опции селекта - так вот они должны быть латиницей, и поиск не получиться!!
  13. Drop-down first option title - устанавливаем для селекта какое нибудь слово или фразу, в данном случае например "выберите страну".
  14. Есть возможность cпрятать заголовок (title) селекта если он вдруг не нужен на фронте, для этого нужно воспользоваться опцией Hide item name
  15. Отношения (relations) между элементами фильтра и фильтрами в поисковом запросе
    при фильтрации данных работают ТОЛЬКО в режиме AND, т.е. ...WHERE
    filter1=aaaa AND filter2=bbbb AND (filter_item1=222 AND filter_item2 =
    333) ....
  16. Всё! Жмём сохранить. Теперь пройдёмся по моментам которые могут пригодиться. Ну например нет желания отображать заголовок всего фильтра, нет проблем, ставим знак тильда '~' перед ним:
  17. Затем, сам Item meta key некрасивый, например такой medafi_5393540d4024e, а это ключ мета поля, чтобы окрасивить его достаточно переименовать его на свой лад по смыслу, например вводим для цены medafi_price и жмём change meta key. Аяксом выдаст что данные сохранились. Причем заметьте - ключ должен начинаться с префикса medafi_ это важно! Переименование можно сделать когда угодно, даже когда уже завязаны посты на фильтры и данные проставлены, не имеет значения, всё учтено. Но всё же лучше сделать на этапе создания фильтра. Делать переименование можно только для фильтров которые добавлены и нажата кнопка Обновить для всего фильтра хотя бы 1 раз после создания html-элемента ключь которого хотим переименовать!
  18. Затем очень важный момент, который почти всегда в woocommerce касается такого понятия как Цена. Плагин устанавливается не всегда на новый сайт, бывает что уже продукты или что то там уже существуют, и у них уже есть свой meta key который относиться к цене. Например в том же вукомерце это _price. Так вот чтобы уже работать с существующими метаключами на сайте, в плагине создан механизм reflections - отражения, по сути оно так и получается - отражать значение другого ключа. Для того чтобы применить это отражение надо в блоке Reflect value from meta key html элемента фильтра нажать чекбокс и написать отражаемый мета ключ в textinput рядом, например _price и затем жмём Обновить:
  19. Для чекбоксов отражать можно мета ключи у которых значение только 1 или 0
  20. Для селектов отражать можно значение состоящее из слов, причем в опшены селекта надо накидать эти же ключи что и в отражаемом ключе. Вообще это редкая ситуация, но возможная (например с работой с ACF плагином).
  21. Есть есчо такой html элемент в фильтре - taxonomy, так вот он добавляется в фильтры как метка и это в данном случае означает всего лишь место где появятся таксономии выбранные в виджете или шорткоде (будут рассмотрено далее) и ничего больше. Просто если вы добавите его, то это значит - здесь будут таксономии если в виджете или шорткоде решите их использовать, и всё, больше думать над этим не надо. Да и запомните этот пункт - чтобы отобразить таксономии в фильтре надо сделать то что я только что описал и не писать в суппорт что таксономии не появляются в фильтре =) Просто киньте их куда то в фильтре отдельной секцией!
  22. Рассмотрим последний момент, настройки в фильтре в сайдбаре:
  23. Sequence - последовательность, очерёдность появления текущего фильтра в блоке фильтров выбранной категории-фильтров. То есть это всего лишь порядок фильтров какой первый, какой второй. Это дело можно есчо проставить здесь:
  24. On front widget - означает высоту в пикселях после которой появляется скроллинг:
  25. On backend - сделан для удобства назначения величин в бэкенде поста для данного фильтра (см. далее), например когда 30 чекбоксов в одной секции - они сделают хорошую высоту в бэкенде поста который хотм включить в поиск, и без установки высоты в бэкенде работать будет неудобно.

Назначение значений постам

  1. Всё! У нас есть фильтры. Но чтобы фильтровать типы постов нужно для каждого поста проставить значения по которым они будут фильтроваться. У нас пока что есть логическая структура по которой будет фильтрование, но нет самих данных для фильтрования.
  2. Как я раньше и говорил разницы нету, есть вукомерц или нету, плагин изначально делался не для вукомерц, а для любых post-типов, вукомерц это маркетинговый ход для плагина, так сказать обозначение что работает тоже. Так что product - это всего лишь кастомный тип поста для плагина, и всё.
  3. Идём в любой пост который собираемся сделать searchable (конечно же в настройках плагина мы чекнули его!!) , находим этот метабокс и в селекте выбираем нужную нам категорию фильтра и аяксом нам прилетает форма в которой мы выбираем для текущего поста/продукта нужные параметры и жмём Сохранить, после сохранения имеем следующее
  4. Таким образом метим все посты которые хотим фильтровать
  5. Теперь моменты. Представим ситуацию что у нас 500 товаров, и мы хотим их фильтровать только по таксономиям и цене которую мы отрефлектили в фильтре. То есть все данные уже заряжены, нам надо только всего лишь 1 мелочь - ручками пройтись по этим 500 товарам, дергать селект фильтр-категории и выставлять категорию фильтра. Хмм... да, думаю было бы не очень интересно если так и надо было бы делать, поэтому есть очень быстрый приёмчик. Идём на страницу категорий фильтров и нажимаем на нашу категорию, смотрим её ID в адресной строке браузера и запоминаем, в данном случае это 74
  6. Далее идём в настройки плагина и крутим в самый низ сюда и проставляем значения как на скрине. Пост тип конечно какой нам надо, в данном примере это product. И жмём Assign. После перезагрузки страницы все 500 наших продуктов прошились нужной нам категорией фильтров
  7. Этим приёмом также можно воспользоваться если конечно лень дёргать селект в каждом посте, конечно же более удобно зайти и быстро проставить значения не совершая ненужных движений.
  8. Всё теперь у нас есть фильтры и нужные нам посты отмечены нужными нам данными. Следующий шаг это работа с виджетами.

Работа с виджетами

  1. Есть 2-а рабочих виджета: MDTF и MDTF Taxonomies only. Первый нужен когда мы собираемся фильтровать по таксономиям и метаданным одновременно, то есть так как мы и приготовили данные. Вторым можно вообще воспользоваться сразу после установки, кинули в сайдбар выбрали пост тип и всё, фильтруем по таксномия только. Поэтому будем рассматривать 1-й виджет.
  2. Кидаем виджет в сайдбар, пишем название, выбираем категорию фильтра и пост тип который будем фильтровать . Обращаем внимание на 2 чекбокса на скрине: Hide meta values filter options - чекаем если будем фильтровать только по таксономиям - мета данные не будут показываться на фронте, Hide taxonomies values filter options - чекаем если будем фильтровать только по метаданным, таксономии не будут показываться на фронте - эти настройки созданы для гибкости. Кстати если только поставить плагин, и кинуть этот виджет - то чтобы фильтровать без ошибок посты по таксономиям только надо обязательно чекнуть Hide meta values filter options.
  3. Сразу желательно для первого раза нажать кнопку сохранения виджета.
  4. В нашем случае всё надо, поэтому не трогаем эти чекбоксы.
  5. Results output page link - если не ставить то возьмётся из настроек плагина. Это поле надо для гибкости, потому что иногда один проект может иметь 10 фильтров, и возможно надо будет выводить на разные страницы потому что на это есть причины.
  6. Results output template - кроме слова search можно вообще написать свой темплейт если знаете html и выводить результаты согласно своей фантазии. Для этого Results output page link надо поставить http://my_site.com/metadata-filter-results-page (эта страница создаётся после активации плагина ), а Results output template - archive или создать новый файл в текущей wp теме например, search_output.php (код конечно тоже придётся писать свой) и прописать search_output в этой опции, но конечно же надо надо добавить туда СВОЙ скрипт вывода постов. Описывать я это не буду так как это другая тема, и если вы этого не знаете, то пишите archive или вообще ничего не пишите, пусть тянуться настройки с настроек самого плагина. Ну а если сильно хочется именно своё - это кастом, можете на фриланс отдать, инструкции здесь.
  7. Далее идут настройки виджета которые говорят сами за себя и о них можно почитать здесь https://wp-filter.com/documentation/
  8. Остановлюсь только на таксономиях. Помните я описал при сборке фильтра элемент taxonomy, так вот таксономии которые должны выводиться выбираются здесь в виджеие, просто чекбоксами выбираете те что надо, и мышкой выставляете последовательность
  9. Рассмотрим опции таксономии в составе виджета:
  10. В этих опциях можно выбрать как будет выводиться таксономия: чекбокс,селект или эмуляция мульти-селекта, выбрать title, очень полезная вещь, например вместо названия таксономии "Locations" выводить "Мои города", поставить размер селекта и указать какие тёрмы этой таксономии не отображать (всё зависит что вы хотите сделать)
  11. Скажу больше, представьте что вам надо "Locations" выводить иерархично как: Countries, Regions, Cities - то есть родительская и каждая дочерняя будут иметь свой тайтл. Всё просто - впишите в поле Custom name/title for taxonomies: Countries^Regions^Cities и в "Show all child terms at once below" ставите "Yes"Такая же логика вывода иерахичных данных селектом для других случаев.
  12. Если выбрать отображать таксономию чекбоксами то появиться опция Block max height - если очень много позиций, то представьте себе длину этого блока, например 300 городов, так вот в этом случае ставьте высоту блока в пикселях какую вам хочется, появиться красивый скроллбар которым можно пользоваться для просмотра тёрмов этой таксономии
  13. Отдельно рассмотрим элемент виджета
  14. Выберите сортировочную панель созданную в дополнительном конструкторе для создания сортировочных панелей тут wp-admin/edit.php?post_type=mdf_woo_sort. Также почитайте о шорткоде [mdf_sort_panel]
  15. Всё! Теперь всё готово для фильтрации ваших постов.
  16. Замечания. Бывают темы вордпресса и кривые плагины которые ломают поисковый запрос, просто перекрывают его. Для этого создан шорткод [mdf_force_searching] который в случае если вы фильтруете, а вам пишется на результирующей странице что ничего не найдено, а должно, кидается в файл header.php в самый низ файла: Не панацея но может помочь.

 

Работа с шорткодами

  1. В плагине есть 2 шорткода для добавления поисковых форм в контент или любой php файл темы - форма и кнопка  . И все они создаются в одном месте:
  2. Принцип работы здесь такой же как и виджетах, выбираете Select filter category, появяться элементы аяксом которые можно переставлять аяксом как вам угодно, и даже скрывать за ненадобностью если в этом есть ваша логика:
  3. Ниже расположены опции по логике такие же как и в описании виджета
  4. Есть одна особенность у шоркодов - скины, то есть можно покрасить выводимый шорткод как вам хочется выбрав всего лишь скин
  5. Но вопрос - откуда они возьмутся кроме стандартных. Тут вам помогут знания CSS или работа фрилансера по css, но могу описать технологию производства
  6. Для того чтобы сделать свой скин вам надо пойти сюда
  7. В папке skins уже лежат 2 стандартных скина, так как для вывода шорткода надо использовать хоть какой то. Копипастите в эту же папку скин default и переименовываете его например в dark, тоесть по смыслу, главное чтобы название папки было без пробелов и малыми буквами
  8. Заходите в ваш dark скин и открываете styles.css . В нём все классы skin_default меняете на skin_dark. Сохраняете, идёте в шорткод и выбираете этот скин, жмёте сохранить, вставляете где то в контент этот шорткод и обновляете ту страницу.
  9. Теперь играйтесь с css как вам угодно в вашем файле стиля шорткода dark. Делаете его плоским, черным, и каким хотите, и всё в таком духе. Вот ссылка на англоязычную статью.
  10. Шорткоды очень удобны, их можно вставлять куда угодно, и не думать о сайдбарах. Вот пример шорткода со стандартным скином вставленным просто в файл header.php:
  11. А вот форма созданная шоркодом-кнопкой после нажатия на неё: - всплывает попап с фильтром который вы и вставили. Для таких шорткодов используйте скин popup
  12. Кнопочный шорткод хорош для того чтобы покупатель всегда что то искал и не терялся в дебрях сайта (в контенте single page), то есть в конце концов он может что то и найдёт и закажет это у вас...
  13. Одно замечание по шорткодам. Если вы добавите дополнительный элемент в фильтр который задействован в шорткоде, то этот элемент не появиться в форме шорткода, так как у него своя память (кэш) и он ею пользуется. Для того чтобы этот элемент появился, надо в шоркоде сделать реселект фильтр-категории фильтра и нажать Сохранить.
  14. На этом вроде всё ...

Работа с маркетинговыми ссылками

  1. В плагине встроена такая интересная вещь как константные ссылки. Для чего они вообще надо. Представьте что у вас магазин одежды, и вы хотите раскидать партнёрам ссылки на мужские товары из германии. То есть чтобы они у себя разместили ссылку, или раскрутить в гугле это дело. Но, посмотрите на поисковую ссылку:  не очень информативно!
  2. А теперь взгляните на этуизящную SEO-ссылку - http://woocommerce.wp-filter.com/best-soda-twisted-pullovers - нравиться? Так вот эти обе ссылки покажут одинаковые результаты, но выглядят по разному
  3. Вот место где вы можете конструировать такие ссылки:
  4. Всё просто, вы на фронте делаете выбор постов какой вам надо с помощью поисковой формы, копируйте с браузерной строки результирующую ссылку, идёте в константные ссылки и создаёте новую, кидаете большую ссылку в textarea и получаете что то типа http://woocommerce.wp-filter.com/self-search-6-2/?slg=product&mdf_cat=56&page_mdf=880. Затем ставите этот плагин и там добавляете эту полученную ссылку и пишете для неё новую SEO-ссылку по своему вкусу. Всё! Теперь можете с этой ссылкой делать что задумали, посылать партнёрам, рекламировать, размещать на сайтах.

 

Послесловие

Теперь если вы ознакомились и поняли всё то что описано выше, у вас не должно возникать вопросов что да как по общим вопросам. Посмотрите рекомендуемые плагины, они подобраны так что почти из любой темы покрасивее можете сделать авто портал с мощным поиском  как пример (или сайт недвижимости, отелей, услуг и прочее)...  Также рекомендую посмотреть видео на русском где многие моменты разжеваны более подробно.