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

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

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

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

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

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

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

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

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

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

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

Получить ID публикации по адресу (slug, path, name) в WP

Февраль 8, 2018 г.

Wordpress API очень разрослось, и почти на каждый случай есть своя функция. И в этой куче функций найти то, что нужно, бывает не просто. Задача - получить ID публикации по её адресу, а вернее значению slug или post_name. В кодексе есть подходящая ...

Читать

Переводим (русифицируем) плагин для wordpress

Январь 22, 2010 г.

Допустим вы написали плагин для wordpress. Что дальше? Можно ли как то расширить аудиторию пользователей, чтобы стяжать ещё большую славу :)? Ответ, конечно же, - да, можно. Иначе этой статьи  бы не было. Расскажу, как сделать и подключить файлы переводов ...

Читать

Добавим галочку на согласие по обработке персональных данных в форму комментариев

Июль 26, 2017 г.

Продолжаю тему о "пользовательском соглашении об обработке персональных данных". В этот раз мы будем добавлять галочку в форму комментариев сайта на WP. ...

Читать

Отключаем архивы в wordpress

Апрель 8, 2017 г.

Wordpress, хотим ли мы того или нет, поддерживает работу специальных лент, которые называются архивами. Есть архивы по годам, месяцам и даже конкретным дням. Также поддерживаются ленты (архивы) по терминам таксономии (метки, теги, категории и т.п.). ...

Читать
 

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

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