Как лучше сделать связь записей в CMS WordPress?

Здравствуйте, столкнулся с такой проблемой, есть верстка, мне нужно сделать шаблон для WordPress, но там немного сложная структура:
у нас есть список компаний с описанием каждой
перечень лиц
список статей, в которых упоминается компания
и файлы которые относятся к статьям

Соотвественно есть рубрики Компании, Лица и Статьи.
И вот на странице компании у нас выводятся лица этой компании и статьи компании, на странице Лица выводится инфомация о нем, к какой компании он относится и какие статьи в которых упоминается данное лицо.

Может быть кто-нибудь знает или плагин или решение для создание подобного?
  • Вопрос задан
  • 3578 просмотров
Решения вопроса 1
@bulldojka
Если я все правильно понял, то плагин Advanced Custom Fields подойдет
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Advanced Custom Fields штука хорошая и удобная, но на больших сайтах со сложным контентом - жутко медленная. Если нужны именно кросс-связи между объектами (post types, users) - есть отличный плагин Posts-to-Posts. Ну и кастомные таксономии.

Грубо говоря, логика такая:
- все что похоже на самостоятельный объект со своей моделью -> custom post type
- любые "поля" / даполнительные данные, по которым нужна агрегация, сортировка, фильтрация и тд -> custom taxonomy
- любые поля, которые просто дают доп.инфу -> custom meta (postmeta, usermeta и т.д.)
- у ACF у полей Relationship есть галочка "Загрузить значение основываясь на терминах записи и обновить термины записи при сохранении" - обязательно использовать ее
- если нужно связать объекты напрямую - Posts-to-Posts.

Например, есть событие (CPT), есть место/локация (CPT), есть пользователи. Есть таксономии страна/город, тип события. С помощью Posts-to-Posts связываем между собой событие и место, а также к событию привязываем несколько пользователей (например, организаторы события), и у события и у места есть таксономия страна/город. Таксономия тип события релевантна только для событий. Получается стройная и гибкая, расширяемая схема. И главное - это все быстро работает, никаких запросов по meta_key. А место ACF в этой схеме - например, для локации это адрес, карта, контакты, ссылка на сайт/соцсети, фотогалерея и тд. Для события - приглашение, расписание, фотографии и видео, дата и время проведения события и тд.

Я описал на своем примере, но переложить логику на компании / лица не составит труда.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы