Как можно сделать отдельные метки (таксономии) для каждой категории с помощтю ACF?

Ссылка скопирована
1 ответ

Добрый день, спецы 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"

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

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Юрий Linux Ответ

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',
        ],
    ],
]);

$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, фильтры и аналитику. Лучше одна таксономия магазинов, одна таксономия типов/меток и правильная фильтрация по пересечению.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно