Как добавить фильтр в список записей в админке WordPress?

Выведя дополнительные столбцы в админке, хотелось бы иметь возможность фильтрации по этим полям. Как это делать, покажу на примере фильтрации по мета-полю публикации.

Если вы читаете данный гайд, то уже знаете :

Если нет, восполните сначала данные пробелы, чтобы двигаться дальше.

Итак, мы создали свой кастомный тип публикации, в котором храним описания филиалов нашей розничной сети. При регистрации данного типа материала (filials), я указал, что буду использовать meta-поля (custom_fields).

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

Для внедрения фильтра понадобится две зацепки  :

  • Фильтр (filter) parse_query — позволяет добавить HTML код в панель фильтров админки,
  • Действие (action) restrict_manage_posts — позволяет внедриться в запрос списка выводимых записей и сделать нужные нам манипуляции.

Реализацию этих зацепок нужно разместить в function.php своей темы или коде своего плагина.

У вас будут свои мета-поля, но данный каркас вы легко приспособите для собственной задачи.

Мало букафф? Читайте есчо !

Отключаем /wp-json/oembed/ в WP

Август 11, 2018 г.

Разработчиков WP не очень заботит SEO, и обновления движка могут оказывать негативные эффекты на индексацию сайта, т.к. могут появляться новые технические страницы, дубли и т.п. В версии 4.4 разработчики добавили RESTful интерфейс, который создаёт дополнительные ...

Читать

Создание публикации по отправленным данным Contact form 7

Июнь 6, 2018 г.

Это продолжение статьи о сохранении данных формы WPCF7, где я рассказал о том зачем это может понадобиться и подходе к реализации. Здесь мы перейдем уже более техническим вещам, к коду. Итак, нам необходимо создать публикацию на основе данных, ...

Читать

References, v1.2

Август 18, 2019 г.

Небольшое обновление для API WP плагина References. Я добавил обратную функцию к REFShraAPI::get - которую назвал REFShraAPI::find. Новая статическая функция позволяет искать публикации, к которым прикреплена указанная статья. [crayon-696ad7aa09387516224354/] ...

Читать

Как вывести категорию товаров Woocommerce в нужном месте?

Июль 14, 2017 г.

Woocommerce показывает каталог товаров (витрину) на странице - /shop/, которая создаётся автоматически при установке плагина. Здесь выводятся ...

Читать
 

Комментарии к «Как добавить фильтр в список записей в админке WordPress?»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Много комментариев в “Как добавить фильтр в список записей в админке WordPress?”

  1. Александр:

    А если нужно N-фильтров и все они являются кастомными полями?

    $query->query_vars[‘meta_key’] = ‘City’;
    $query->query_vars[‘meta_value’] = $_GET[‘ADMIN_FILTER_FIELD_CITY’];

    Как в query_vars передать несколько мета-данных. Я это пойму конечно через время (доки почитаю, погуглю), просто наверняка и другим будет это интересно

    • Александр:

      Или можно как-то массив передать?

      • Можно и массив передавать, если нужно:) К примеру, вы создаёте select с множественным выбором и именем переменной myvar[]. При выборе нескольких элементов списка получите массив в $_GET[‘myvar’].

    • WP_query позволяет собирать несколько условий https://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters

      для этого нужно собрать массив вида