Показване на публикации по стойностите на персонализираните им полета в 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.
Ако имате нужда от помощ за вашия сайт или може би дори от разработка от нулата, пишете ми.