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

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

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

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

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

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

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

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

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

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

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

Payler для Woocommerce

Ноябрь 25, 2020 г.

Для blitzpet.ru занимался подключением платежной системы payler к woocommerce на WP. Обычно в таких случаях используются готовые "фирменные" плагины, разработанные dev team платежной системы для большинства популярных CMS. Но support со стороны payler ...

Читать

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

Июнь 6, 2018 г.

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

Читать

Удаление пользователей в WP, обновление плагина Inactive user deleter

Сентябрь 4, 2017 г.

Плагин продолжает мной развиваться по заявкам пользователей. Вот что было добавлено в версию 1.42. На этот раз обратился пользователь Manish Khullar, ...

Читать

Бесконечные редиректы на WP сайте после включения HTTPS

Ноябрь 27, 2024 г.

Если сайт находится за неким прокси, который реализует SSL, а на веб-сервере при этом не настроен HTTPS протокол, то WP может начать бесконечный цикл переадресаций. Начинается это сразу после изменения URL домашней страницы в админке. Анамнез ...

Читать
 

Комментарии к «Как добавить фильтр в список записей в админке 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

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