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

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

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

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

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

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

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

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

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

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

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

Ошибка формирования чека в best2pay для WooCommerce при использовании купонов — разбор и решение

Январь 29, 2026 г.

В одном из проектов столкнулся с проблемой формирования фискального чека в модуле оплаты best2pay для WooCommerce. Ошибка проявлялась не всегда, а только при использовании промокодов и нескольких товаров в корзине. Формально платеж проходил, но строки ...

Читать

Прикручиваем reCAPTCHA к комментариям в Wordpress

Февраль 18, 2017 г.

Сейчас проходит бета-тестирование 2-й версии reCaptcha от Google. Она называется "Invisible reCAPTCHA" - вроде как невидимая кепча. Но вы уже можете её ...

Читать

Ещё один вариант подключения картинки в редактор таксономии

Июль 7, 2017 г.

Предыдущий вариант встраивания картинки в редактор терминов меня не устраивает в части работы диалога и того, что в базу сохраняется URL, а не ID картинки (thumbnail). Что не так с диалогом? Использован диалог выбора URL картинки встроенного в WP ...

Читать

Powered by wordpress plugin, или нет надо мной твоей власти, Завулон

Сентябрь 30, 2015 г.

Люди далекие от программирования, но пожелавшие заиметь свой блог не каком то livejournal или instagram, а так, чтобы он был совсем свой, "типа как сайт", ...

Читать
 

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

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