TechBlogSD - Все для WordPress и WEB разработки
WEB и WordPress инструкции, новости, обзоры тем и плагинов

Добавление параметров сортировки в FacetWP

868

По мере того, как я реализую все больше и больше аспектов FacetWP, я нахожу все больше и больше способов манипулировать поиском. Сначала я добавил только те функции, которые позволяют людям легко искать сразу несколько аспектов. Но я еще не добавил никаких функций в сортировку.

Сортировка и заказные

Как правило, Facets работает так, что вы можете легко организовать все «типы» вместе, поэтому, если вы хотите найти все, что пересекает четыре отдельные категории, это было очень легко. Кроме того, вы можете расширить его для поиска метаданных.

Сортировка, с другой стороны, меняет порядок результатов. Например, если вы хотите найти всех с терминами A, B и D и опубликовать meta foo, но заказать их по мета-строке post, вы можете!

Практический пример 

Я всегда лучше работаю с примерами, которые могу обернуть руками.

Бери телевизионные шоу. Возьмите список из 500 телешоу и включите в него следующие таксономии:

  • Жанры (драма, ситком и т. Д.)
  • Airdates (год к году)
  • Тропы (общие тропы)
  • Количество символов
  • Количество мертвых символов

Пока этого достаточно.

С этим списком и несколькими аспектами вы можете составить меньший список всех ситкомов, которые транслировались в период между 2014 и 2016 годами (включительно), с набором «секс-работников». Ответ 4 кстати. По умолчанию список отображается в алфавитном порядке.

Но. Что, если вы хотите заказать их по числу, в котором больше всего символов?

Это сортировка.

Топ ↑

Код №Код

Хорошо, так как мы можем добавить это в? Функция!

Facet имеет довольно много значений по умолчанию, но он позволяет вам добавлять свои собственные параметры сортировки. Ниже я расскажу о двух вещах: как переименовать метки дисплея для некоторых значений по умолчанию и как добавить один новый параметр для наибольшего количества символов:

add_filter( 'facetwp_sort_options', 'DOMAIN_facetwp_sort_options', 10, 2 ); function facetwp_sort_options( $options, $params ) { $options['default']['label'] = 'Default (Alphabetical)'; $options['title_asc']['label'] = 'Name (A-Z)'; $options['title_desc']['label'] = 'Name (Z-A)'; if ( is_post_type_archive( 'DOMAIN_shows' ) ) { $options['most_characters'] = array( 'label' => 'Number of Characters (Descending)', 'query_args' => array( 'orderby' => 'meta_value_num', // sort by numerical 'meta_key' => 'DOMAIN_char_count', 'order' => 'DESC', // descending order ) ); }

Я завернул это в проверку, is_post_type_archiveпотому что я не хочу, чтобы опции отображались на других страницах. Мета-ключ – это имя мета-ключа, который вы собираетесь использовать для сортировки (у меня есть ключ, который обновляется каждый раз, когда сообщение сохраняется с добавленным количеством символов), а значение orderby является одним из тех, которые может использовать WP Query. использовать .

Топ ↑

Конечный результат?

Раскрывающийся список с опциями

Выглядит хорошо!

Источник записи: https://halfelf.org

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее