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


Построение get-запроса к БД Wordpress для создания фильтра записей и страниц | CODESELLER

Публикация в группе: Полезное для WordPress

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

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

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

filtr-form

Можно воспользоваться услугами специалиста, объяснить, что вам от него надо и получить готовый результат. А если вам захочется внести изменения? Это затратный способ и не практичный. Гораздо приятнее, что то сделать самому, разобраться в этом вопросе и в последствии совершенствовать свои навыки, находя новые пути решения своей задачи)

Давайте для начала рассмотрим логику работы любого фильтра.

Фильтр работает в два этапа:

  1. Отсылает в обработчик параметры выбранные пользователем в форме фильтрации
  2. Обработчик принимает значения, обрабатывает их и выдает результат обработки в виде какой то информации.

т.е. по логике нам надо написать код формы фильтрации и обработчик, который будет принимать данные с этой формы.

Работая с сайтом на WordPress очень полезно знать о том, что мы можем отправить данные из фильтра напрямую системе WordPress, возложив на нее работу по обработке и выдаче результата запроса, без необходимости писать этот обработчик самому. Иными словами, нам можно написать только форму фильтра следуя определенным правилам, чтобы составить правильный запрос к БД WordPress и WordPress быстро выдаст нам результат. Почему бы в начале своего пути разработчика фильтра для своего сайта не пойти кратчайшим путем и не использовать эту возможность?

Допустим, что составлять html-формы мы уже умеем, тогда дело за малым - вникнуть в правила создания запроса к БД WordPress из этой формы.

Давайте для начала определимся с основными правилами.

  1. Метод передачи данным будет использоваться GET
  2. Переданные параметры разделяются знаком амперсант (&)

Следуя этим несложным правилам можно понять, что запрос мы должны строить по такому принципу

exаmple.ru/?первый_параметр=значение_параметра&второй_параметр=значение_параметра&....

и подобным образом мы можем строить запросы практически любой сложности и длины.

Что же нам надо передавать в качестве параметров и их значений? А вот это и есть самая суть этого поста, к которой мы сейчас и переходим.

Важно понимать, что запрос мы будем строить последовательно, словно кирпичики укладывая параметры со своими значениями в запрос и каждый последующий параметр будет уточнять весь запрос.

Например, нам надо получить все записи автора admin, за 2013 год и вывести только последние 20. Тогда структура запроса будет выглядеть так:

exаmple.ru/?автор=admin&год=2013&количество=20

это не рабочий пример, это структура запроса, логика его построения.

Если значения параметров запроса нам более-менее известны, то сами параметры которые нам надо передавать нет. Поэтому мы перейдем к рассмотрению этих параметров.

Параметры которые мы можем передавать в запрос мы можем разделить на группы:

Рассмотрим каждую группу этих параметров подробнее.

 

Параметры категорий

Данные параметры получают записи из определенных категорий

cat (число) - в качестве значения передаем ID категории, можем перечислять их через запятуюcategory_name (строка) - передаем ярлык нужной к выводу категорииПримеры

1. Получим записи из категории идентификатор которой равен 5

exаmple.ru/?cat=5

2. Получим записи из нескольких категорий

exаmple.ru/?cat=10,20

3. Получим все записи за исключением указанных категорий

exаmple.ru/?cat=-11,-25

4. Получим записи из категорий с указанным ярлыком

exаmple.ru/?category_name=order,slims

 

Параметры меток

Выводят записи содержащих указанные метки

tag (строка) - в качестве значения можно передавать ярлыки меток

tag_id (число) - в качестве значения указываются идентификаторы нужных меток

Примеры

1.  Получим записи содержащие указанную метку

exаmple.ru/?tag=book

exаmple.ru/?tag_id=15

2. Получить все посты содержащие хотя бы одну из указанных меток

exаmple.ru/?tag=book,clock

exаmple.ru/?tag_id=15,36,5

3. Получим все записи которые содержат все указанные метки

exаmple.ru/?tag=book+clock+days

 

Параметры авторов

Выводят посты указанных авторов

author (число) - в качестве параметра указывается идентификатор нужного автора

author_name (строка) - указывается логин нужного автора

 

Примеры

1. Получить все записи указанного автора

exаmple.ru/?author=56

exаmple.ru/?author_name=petya

2. Получить записи всех указанных авторов

exаmple.ru/?author=33,78,12

exаmple.ru/?author_name=petya,vasya

3. Вывести все записи кроме указанного автора

exаmple.ru/?author=-56

 

Параметры постов и страниц

p (число) - идентификатор поста, который желаем получить

name (строка) - ярлык нужного нам поста

page_id (число) - идентификатор страницы, которую желаем получить

pagename (строка) - ярлык нужной нам страницы

post_parent (число) - идентификатор родительской страницы дочерние страницы которой мы хотим получить.

 

Примеры

1. Получим указанную запись

exаmple.ru/?p=54

exаmple.ru/?name=title_post

2. Получим указанную страницу

exаmple.ru/?page_id=89

exаmple.ru/?pagename=slug_page

3. Выведем все страницы, являющиеся дочерними для указаной

exаmple.ru/?post_parent=69

4. Получим определенную дочернюю страницу по ее ярлыку. Родительская и дочерняя страницы разделяются знаком слеша

exаmple.ru/?pagename=country/russia

5. Получим страницы только верхнего уровня, исключив дочерние

exаmple.ru/?post_parent=0

 

Параметры типов страниц

post_type (строка) - получает записи определенного типа

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

any - получаем все типы записей кроме revision

attachment - выводим вложения для записей

page - страница.

post - пост.

revision - ревизия.

Также в качестве параметров могут передаваться произвольные типы записей, созданные плагинами, шаблонами или пользователем

 

Примеры

1. Получим только записи типа post

exаmple.ru/?post_type=post

2. Получим записи произвольного типа, исключив все остальные

exаmple.ru/?post_type=orders

 

Параметры таксономий

Получаем записи из определенной таксономии

Здесь рассматриваются пользовательские таксономии.

В качестве передаваемого параметра указывается нужная таксономия, а в качестве ее значения ярлык нужного нам термина

 

Примеры

1. Получим все записи из таксономии prodcat принадлежащие ее термину slug_term

exаmple.ru/?prodcat=slug_term

 

Параметры времени

Получаем записи за определенный период времени

year (число) - указываем нужный год публикации записей

monthnum (число)- указываем нужный месяц публикации записей

w (число) - указываем нужную неделю публикации (с 0 до 53)

day (число) - день публикации (1 - 31)

hour (число) - час публикации (0 - 23)

minute (число) - Минута (0 - 60)

second (число) - Секунда (0 - 60)

m (число) - ГодМесяц (201306)

 

Примеры

1. Получим записи за 2012 год

exаmple.ru/?year=2012

2. Выведем все публикации за 12 сентября 2011 года

exаmple.ru/?m=201109&day=12

 

Параметры сортировки и порядка

Сортируют выводимые записи и устанавливают порядок сортировки.

 

order (строка) - Направление сортировки по параметру orderby, может быть:

ASC - по порядку, от меньшего к большему (1, 2, 3; a, b, c).

DESC - в обратном порядке, от большего к меньшему (3, 2, 1; c, b, a) .

 

orderby (строка) - Поля по которым можно сортировать посты. Может быть

none - не сортировать, выводить прям как находиться в БД. равносильно сортировке по ID. С версии 2.8.

ID - сортировка по ID.

author - сортировка по ID авторов.

title - сортировка по заголовку.

name - по названию поста (слаг поста).

date - сортировка по дате публикации.

modified - сортировка по дате изменения.

parent - сортировка по значению поля parent.

rand - случайный порядок.

comment_count - сортировка по количеству комментариев. С версии 2.9.

menu_order - стандартно используется для страниц и вложений. Порядковый номер указывается на странице редактирования поста.

meta_value Важно: параметр meta_key так же должен быть определен. Заметка: сортировка будет алфавитной и будет не логична, если значения

произвольных полей числа (будет, например, так 1, 3, 34, 4, 56, 6 и т.д., а не 1, 3, 4, 6, 34, 56).

meta_value_num - сортировка по произвольным полям значения которых являются числами.

 

Примеры

1. Сортировка по заголовку выводимых записей

exаmple.ru/?orderby=title&order=DESC

2. Сортировка по количеству комментариев

exаmple.ru/?orderby=comment_count

3. Отсортируем выводимые товары по цене

exаmple.ru/?post_type=product&orderby=meta_value&meta_key=price

 

Параметры поиска

Получаем посты соответствующие поисковому запросу

s - параметр, значением которого является поисковый запрос

 

Пример

1. Получить записи по поисковому запросу "контент"

exаmple.ru/?s=контент

 

Комбинации запросов

1. Получим записи из категории 4  за 2012 год

exаmple.ru/?cat=4&year=2012

2. Получим все записи автора admin из категории 5 и 6 и отсортируем по заголовку

exаmple.ru/?author_name=admin&cat=5,6&orderby=title&order=DESC

 

И так, рассмотрев перечисленные параметры, которые мы можем передавать в запрос, можем приступить к написанию несложных форм фильтров, которыми пользователи нашего сайта могут пользоваться на вашем сайте. Все возможные варианты не покажу, но направление развития задам)

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

<form action="/" method="get"> <p><label>Поисковый запрос</label><br /> <input type="text" name="s" value=""></p> <p><label>Укажите категорию поиска</label><br /> <select name="cat"> <option value="">--------</option> <option value="10">Категория 10</option> <option value="11">Категория 11</option> <option value="15">Категория 15</option> <option value="23">Категория 23</option> </select> </p> <p><label>Сортировка по заголовку</label><br /> <input type="radio" name="order" value="DESC"> по убыванию<br /> <input type="radio" name="order" value="ASC"> по возрастанию </p> <input type="hidden" name="orderby" value="title"> <p><input type="submit" value="Получить записи"></p> </form>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<form action="/" method="get">

<p><label>Поисковый запрос</label><br />

<input type="text" name="s" value=""></p>

<p><label>Укажите категорию поиска</label><br />

<select name="cat">

<option value="">--------</option>

<option value="10">Категория 10</option>

<option value="11">Категория 11</option>

<option value="15">Категория 15</option>

<option value="23">Категория 23</option>

</select>

</p>

<p><label>Сортировка по заголовку</label><br />

<input type="radio" name="order" value="DESC"> по убыванию<br />

<input type="radio" name="order" value="ASC"> по возрастанию

</p>

<input type="hidden" name="orderby" value="title">

<p><input type="submit" value="Получить записи"></p> </form>

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

<form action="/" method="get"> <p><label>Поисковый запрос</label><br /> <input type="text" name="s" value=""></p> <p><label>Укажите товарную категорию:</label><br /> <select name="products"> <option value="">--------</option> <option value="books">Книги</option> <option value="clocks">Часы</option> <option value="glasses">Очки</option> <option value="scarfs">Шарфы</option> </select> </p> <p><label>Метка товара:</label><br /> <select name="tag"> <option value="">--------</option> <option value="sale">Распродажа</option> <option value="new">Новинки</option> <option value="hits">Хиты продаж</option> </select> </p> <p><label>Сортировка по</label><br /> <select name="orderby"> <option value="date">дате добавления</option> <option value="title">заголовку</option> </select> </p> <p><label>Направление сортировки:</label><br /> <input type="radio" name="order" value="DESC"> по убыванию<br /> <input type="radio" name="order" value="ASC"> по возрастанию </p> <p><input type="submit" value="Получить записи"></p> </form>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

<form action="/" method="get">

<p><label>Поисковый запрос</label><br />

<input type="text" name="s" value=""></p>

<p><label>Укажите товарную категорию:</label><br />

<select name="products">

<option value="">--------</option>

<option value="books">Книги</option>

<option value="clocks">Часы</option>

<option value="glasses">Очки</option>

<option value="scarfs">Шарфы</option>

</select>

</p>

<p><label>Метка товара:</label><br />

<select name="tag">

<option value="">--------</option>

<option value="sale">Распродажа</option>

<option value="new">Новинки</option>

<option value="hits">Хиты продаж</option>

</select>

</p>

<p><label>Сортировка по</label><br />

<select name="orderby">

<option value="date">дате добавления</option>

<option value="title">заголовку</option>

</select>

</p>

<p><label>Направление сортировки:</label><br />

<input type="radio" name="order" value="DESC"> по убыванию<br />

<input type="radio" name="order" value="ASC"> по возрастанию </p>

<p><input type="submit" value="Получить записи"></p>

</form>

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

Если вам недостаточно предоставленных тут примеров реализации запросов к БД или вы думаете, что данная информация является неполной, то прошу отписаться в комментариях, будем дополнять материал вместе. Делитесь созданными фильтрами для своих сайтов, наверняка они будут интересны другим.

Автор публикации

11K

возможно рассмотрение заказов

Комментарии: 1927Публикации: 431Регистрация: 30-11--0001Продаж/Покупок: 20032/132

codeseller.ru

Фильтр записей в админ-панели WordPress — WDfiles — Блог файлообменника

 Привет ! Мы продолжаем разбирать самые интересные и самые полезные плагины для сайта WordPress ! Сегодня вы узнаете как добавить фильтр для поиска записей в админ-панель WordPress. Вы сможете искать записи по указанной дате. Можно искать записи по готовым фильтрам, 14 фильтров, за последние 7 дней, за последний месяц, год, сегодня и т.д. На странице со списком всех записей, вверху страницы, у вас появится новое поле со списком всех фильтров для поиска записей.

 

фильтр записей WordPress

 

Установить плагин Date range filter вы сможете прямо из админ-панели WordPress. Перейдите на страницу: Плагины — Добавить новый, введите название плагина в форму поиска, нажмите Enter, установите и активируйте плагин.

 

Date range filter

 

Далее, после установки и активации плагина, перейдите на страницу: Записи — Все записи. Вверху страницы у вас появится новое поле с фильтрами. После выбора фильтра у вас автоматически отобразятся соответствующие записи.

 

фильтр дата записи wordpress

 

Обозначения фильтров:

— Show All Time, показать записи за всё время.

— Custom Date Range, у вас появится два поля где вы сможете указать дату от и до. С какого и по какое число показывать записи. Нажмите по полю и у вас появится web-календарь где вы сможете выбрать дату.

— Сегодня, показать все сегодняшние записи.

— Yesterday, показать все вчерашние записи.

— Last 7 Days, показать записи за последние 7 дней.

— Last 14 Days, показать записи за последние 14 дней.

— Last 30 Days, показать записи за последние 30 дней.

— This Month, показать записи за этот месяц.

— Last Month, показать записи за предыдущий месяц.

— Last 3 Months, показать записи за последние 3 месяца.

— Last 6 Months, показать записи за последние 6 месяцев.

— Last 12 Months, показать записи за последние 12 месяцев.

— This Year, показать все записи за этот год.

— Last Year, показать все записи за прошлый год.

 

Данный плагин готов к переводу, перевести вы его сможете с помощью плагина — Loco Translate.

 

wdfiles.ru

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

Иногда бывает нужно изменить стандартный вывод записей на главной, причем эти условия вывода могут быть самыми разными. WordPress, по умолчанию, выводит список всех опубликованных записей в порядке их времени создания (сначала выводятся самые новые посты). Часто возникает необходимость из этого списка исключить вывод тех или иных записей. Например, при создании сайта-портфолио, где нужно показать только какую-то определенную часть контента.

Как фильтровать вывод записей?

Для решения этой задачи существует два метода:

Рассмотрим второй, как наиболее легкий, вариант. Для этого воспользуемся бесплатным плагином Blog Post Filter, который прячет из вывода выбранную категорию.

Итак, после установки и активации плагина, в админ-панели необходимо перейти Записи -> post filtering.

Страница настройки плагина Blog Post Filter

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

Задай их экспертам в нашем телеграм канале «WordPress сообщество» Курс WordPress-разработчик

Если Вам понравилась статья — поделитесь с друзьями

Михаил Петров

wpschool.ru


Смотрите также

Prostoy-Site | Все права защищены © 2018 | Карта сайта