Показване на публикации по стойностите на персонализираните им полета в WordPress

Публикацията ще се състои от две части, в първата ще разгледаме общо какво може да се направи с помощта на meta_query, а във втората ще разгледаме няколко примера за работа с потребителски полета, без изобщо да използваме meta_query.

Част 1. Примери за използване на meta_query

Показване на публикации по стойност на произволно поле

Нека започнем с най-простия пример, да кажем, че искаме да покажем всички продукти в синьо:

Ако погледнете страницата за редактиране на някой от продуктите, получени в този пример, тогава в блока „Персонализирани полета“ ще видите следното:

Искам да отбележа, че примерите са опростени, в масива от аргументи във всеки случай трябва да има такива параметри като posts_per_page (броят публикации, показани на страницата) и най-вероятно post_type (отделен тип публикация за продукти). Това означава, че разглеждаме чисто meta_query и нищо повече.

Можете да направите и обратното - т.е. да покажете всички продукти,с изключение на сините продукти:

А сега същите примери, но само добавете още един цвят. И така, първо показваме всички продукти в син или червен цвят:

И сега всички стоки, с изключение на сините стоки и червените стоки:

Показване на публикации по диапазон от персонализирани стойности на полета

Е, в случай на продукти, ще бъде удобно да ги покажем по ценови диапазон, например ще покажем всички продукти, които са по-скъпи от 1000 и по-евтини от 3000:

Сравняване на персонализирани стойности на полета

Нека разделим предишния пример на два примера:

  • В първия - цената на стоките ще бъде по-голяма от 1000 (или равна на 1000)
  • Във втория, цената на стоките ще бъде строго по-ниска от 3000

Показване на публикации по стойностите на няколко персонализирани полета

Тук няма да измисля нищо особено ново - просто ще комбинирам предишните примери, например, така че продуктът да е син И цената му да е от 1000 до 3000, ето как ще изглежда масивът от параметри:

Част 2. Работа с персонализирани полета без помощта на meta_query

Тук няма какво да се говори, ако параметърът WP_Query meta_key (име на параметър) е meta_value (стойност на параметър, за числови стойности — meta_value_num). Има и параметър за сравнение meta_compare.

Сега нека да разгледаме един пример. Да кажем, че трябва да покажем някои от публикациите на главната страница. Нека извадим тези публикации:

И сега получаваме всички останали публикации, т.е. за които параметърът homepage_show_it не е равен на on.

Вижте също

Миша Рудрастих

За първи път се запознах с WordPress през 2009 г. От 2014 г. можете да ме срещнете в WordCamp - официалната конференция на WordPress, понякога говоря там. В момента също преподавам курсове по WordPress в Epic Skills.

Ако имате нужда от помощ за вашия сайт или може би дори от разработка от нулата, пишете ми.