Как в WordPress сделать атрибуты как в Woocommerce?
В общем это структура будущих фильтров:
Фильтр не отрабатывает если я этажность и количество спален засуну в одну таксономию. Посмотрел в вукомерсе вроде как есть атрибуты и под каждый атрибут создается своя таксономия. Мне придется в ручную создавать таксономии этажность и количество спален? Или есть какое то решение
Дополнительно:
Зачем таксономия, когда это все можно указать в произвольных полях и фильтровать по ним
Фильтр не отрабатывает если я этажность и количество спален засуну в одну таксономию.
Не стоит совершенно разные свойства засовывать в одну таксономию. Это противоречит смыслу таксономии как таковой.
Зачем таксономия, когда это все можно указать в произвольных полях
Фильтрации и сортировки по произвольным полям в Вордпрессе очень тяжелые и тормозные операции из-за особенностей реализации хранения данных. Зато произвольные поля быстрей и проще для ввода и вывода неструктурированных атрибутов сущностей. С формализованными атрибутами таксономии справляются гораздо лучше.
Т.е мне создать отдельные таксономии для категорий, этажности и количества спален? Просят сделать как тут +- https://kst-dom.ru/
Т.е мне создать отдельные таксономии для категорий, этажности и количества спален?
Да. По логике вещей этажность, количество спален, кол-во санузлов, материал и т.д. - это все таксономии.
1, 2 и т.д. - термы таксономии этажность
1, 2 и т.д. - термы таксономии кол-во спален
кирпич, брус и т.д. - термы таксономии материал
и т.д. и т.п.
Стоит иметь в виду, что не стоит использовать цифровые слаги и что одинаковые слаги у разных таксономий движок может не пропустить.
Просят сделать как тут
Ненавижу такую постановку вопроса!
Указал ссылку, чтобы было понимание. Потому что я бы сделал просто доп.полями через ACF и вывел в фильтр. Но заказчику нужно чтобы можно было перейти (например из меню) на страницу этого фильтра и поэтому на ум приходит только термы
Ответы:
Или есть какое то решение
Произвольная таксономия или произвольные поля.
Но я бы рекомендовал первое, тк у ПП нет индекса и при сложных выборках могут возникнуть проблемы.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Да, если свойства должны иметь свои посадочные страницы вроде “одноэтажные дома”, “дома с 3 спальнями”, “дома из газобетона”, то лучше делать отдельные таксономии под разные смысловые свойства. Не стоит складывать этажность и количество спален в одну таксономию: это разные признаки, и фильтр потом будет путаться.
Логика WooCommerce с атрибутами как раз такая: каждый атрибут — отдельная таксономия. Для Вашего типа объектов можно сделать аналогично:
house_floors— этажность;house_bedrooms— количество спален;house_material— материал;house_area— диапазон площади, если нужны SEO-страницы;Если значение должно иметь страницу архива и SEO-текст, используйте таксономию. Если значение нужно только для сортировки/диапазона, используйте произвольное поле. Например, точная площадь и цена — meta, а “одноэтажные дома” — taxonomy.
Регистрация таксономии:
register_taxonomy('house_floors', ['house'], [ 'label' => 'Этажность', 'public' => true, 'hierarchical' => false, 'rewrite' => ['slug' => 'floors'], 'show_in_rest' => true, ]);
Фильтр по нескольким таксономиям строится через
tax_queryсAND. Тогда можно выбрать этажность и спальни одновременно.Итог: да, таксономии придётся создать отдельно, если Вы хотите нормальную архитектуру, фильтры и SEO-страницы. Это не минус, а правильная модель данных. Не копируйте WooCommerce буквально, но принцип “одно свойство — одна таксономия” здесь верный.