Как можно сделать отдельные метки (таксономии) для каждой категории с помощтю ACF?
Добрый день, спецы WP.
Как можно сделать отдельные метки (таксономии) для каждой категории с помощью ACF?
Пример того что нужно:
Есть несколько магазинов (Лента, Ашан и т.д. - страницы), есть много продуктов (лук, бананы, капуста, яблоки - посты). У каждого продукта есть метка (овощ/фрукт).
Структура:
Ашан: (страница)
- Лук (запись, метка - овощ1)
- бананы (запись, метка - фрукт1)
- капуста (запись, овощ1)
- яблоки (запись, фрукт1)
Лента: (страница)
- Лук (запись, метка - овощ2)
- бананы (запись, метка - фрукт2)
- капуста (запись, овощ2)
- яблоки (запись, фрукт2)
В стандартном функционале WP если нажать на метку Овощ1 в категории Ашан, то покажутся и овощи из категории Лента (метка овощ2), а нужно только овощи из категории Ашан.
Смысл в том, что название метки и там и там должно быть одинаковое (овощ/фрукт) (т.е. овощ1=овощ, овощ2=овощ, фрукт1=фрукт, фрукт2=фрукт).
Т.е. для каждой категории нужно создать свои метки (если рассматривать ашан и ленту категориями). Может криво объяняю, но как лучше объяснить не знаю. В общем надо категория / подкатегория = свои метки
Разобрался как добавлять и отображать кастомные поля по категориям и подкатегориям в ACF, но вот с таксономией все перелазил и не нашел. Может быть как-то можно кастомные поля перегнать в таксономию или может быть можно реализовать не с помощью ACF?
Дополнительно:
В стандартном функционале WP если нажать на метку Овощи в категории Ашан, то покажутся и овощи из категории Лента, а нужно только овощи из категории Ашан.
Вордпресс поддерживает (раньше точно поддерживал, за новый не знаю) "гибридные" ссылки типа /category/ашан?tag=овощи. Не очень красиво, зато ничего дополнительного не нужно. А с учетом тенденции браузеров "спрятать всё" можно не сильно беспокоится о красоте адреса.
Ответы:
У вас магазины это термины? Ну так сделайте дочерние термины как вы сами и описали , все должно работать
- перефразировал вопрос, немного другое нужно
- Не понимаю зачем вам много терминов овощи, пусть будет один, а товар прикрепляете к магазин + термины
-
Как можно сделать отдельные метки (таксономии) для каждой категории с помощью ACF?
- такого решения не знаю
Но что мешает наделать обычных меток, используя в слаге нужную категорию?
Овощ - "asan_ovosh"
Овощ - "lenta_ovosh"Если таких меток немного, то можно их руками прописать в выборке.
Если много, то написать паттерн и слаги прогонять через него - с нужным вхождением выводить в требуемой категории
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
ACF сам по себе не создаёт отдельные таксономии «для каждой категории». Он может хранить дополнительные поля, но архитектуру таксономий лучше продумать средствами WordPress. В вашем примере проблема не в ACF, а в том, что метка «овощ» глобальная и при клике показывает все записи с этой меткой, независимо от магазина.
Есть несколько решений. Самое простое: использовать пересечение таксономий — магазин и тип продукта. Например, запись «Лук» имеет таксономию
shop= Ашан и таксономиюproduct_type= овощ. На странице магазина фильтруете по двум условиям:$query = new WP_Query([ 'post_type' => 'product', 'tax_query' => [ 'relation' => 'AND', [ 'taxonomy' => 'shop', 'field' => 'slug', 'terms' => 'ashan', ], [ 'taxonomy' => 'product_type', 'field' => 'slug', 'terms' => 'ovoshchi', ], ], ]);
Если при клике на «Овощи» внутри Ашана нужно оставаться в контексте Ашана, формируйте ссылки не на обычный архив метки, а на URL с двумя параметрами или на кастомный роут:
/shop/ashan/type/ovoshchi/.Создавать отдельные метки
овощ1,овощ2для каждого магазина — плохой путь. Потом будет сложно поддерживать SEO, фильтры и аналитику. Лучше одна таксономия магазинов, одна таксономия типов/меток и правильная фильтрация по пересечению.