Существует ли (относительно простой!) Способ создания отношений между таксономиями БЕЗ необходимости публикации в качестве посредника

Все ответы, которые я нашел до сих пор – здесь и в другом месте, включают создание (пользовательский) пост – который будет «излишним», потому что в этом случае многие из «терминов» появятся только один раз.

Конкретный пример, чтобы объяснить, что я пытаюсь выполнить:

Person A may be the composer of Song 1; Person A may be the lyricist of Song 2; Person A may be both the composer and lyricist of Song 3; Person A may have been the presenter of Show 1. 

Я (думаю, я!) Хочу иметь одну таксономию «человека» (т. Е. Так, чтобы Человек А вводился только один раз) с другими таксономиями «композитора», «лирика» и «ведущего». Затем на фактическое сообщение для песни 1, песни 2, шоу 1 и т. Д. У меня есть человек: отношения. Затем поиск Person A показал, что (и) он подключен к:

 Song 1, as 'composer'; Song 2, as 'lyricist'; Song 3, as 'composer' and as 'lyricist'; Show 1, as 'presenter'. 

В качестве альтернативы, если я задаю невозможное и должен связываться с персонализированной почтой человека, существует ли «простой» (то есть автоматический) способ ее создания, т. Е. Когда я ввод данных для песни, шоу и т. Д. и просто хотите ввести имя?

Следует добавить, что «Нет … искал веков (или пытался умело), ​​но не нашел решения» – это приемлемый ответ. Не тот, на который я надеялся, но, по крайней мере, это может убедить меня прекратить искать / пытаться!

Solutions Collecting From Web of "Существует ли (относительно простой!) Способ создания отношений между таксономиями БЕЗ необходимости публикации в качестве посредника"

Используя стандартные функции WordPress, это просто невозможно, если не использовать сложные и плохо выполняемые трюки.

Метод, который я предлагаю вам, заключается в создании вашей настраиваемой таблицы, где хранятся отношения.

Он должен состоять из 5 столбцов:

 person_id | post_id | post_type | taxonomy | term_id 

Теперь, копируя ваш пример:

 Person A may be the composer of Song 1; Person A may be the lyricist of Song 2; Person A may be both the composer and lyricist of Song 3; Person A may have been the presenter of Show 1. 

и предполагая:

 'Person A' is a term of 'people' taxonomy with term_id 66 'Composer' is a term of 'talents' taxonomy with term_id 30 'Lyricist' is a term of 'talents' taxonomy with term_id 40 'Presenter' is a term of 'talents' taxonomy with term_id 50 'Song 1' is a post with the id 1 'Song 2' is a post with the id 2 'Song 3' is a post with the id 3 'Show 1' is a post with the id 9 

Чтобы выявить отношения в вашем примере, нам нужно 5 строк в таблице

 66 | 1 | 'post' | 'talents' | 30 66 | 2 | 'post' | 'talents' | 40 66 | 3 | 'post' | 'talents' | 30 66 | 3 | 'post' | 'talents' | 40 66 | 9 | 'post' | 'talents' | 50 

Зная личность человека, вы знаете все его таланты и какие должности связаны. Точно так же, зная сообщение, вы знаете всех людей, которые связаны с этим талантом, участвующим в этом конкретном посту.

Получение и отображение данных – это cinch: когда люди, таланты, песни и шоу являются стандартными сущностями WordPress (сообщениями, терминами), вам не нужно ничего делать, чтобы создать URL-адрес, чтобы показать их выборочно, и вы также можете лучше использовать иерархию шаблонов. Получение пользовательских ассоциаций очень просто, несколько строк sql, и все готово.

Хранить пользовательские ассоциации немного сложнее: не являясь частью ядра wordpress, вы должны полностью создать пользовательский интерфейс для области. Ничего невозможного: вам нужно просто обмен с некоторыми строками (или, лучше, возможность динамически добавлять строки), и для каждой строки два выбирают меню: один для людей, один для таланта.

Обратите внимание, что этот метод позволяет связывать людей с каждым типом сообщения и каждой таксономией: возможно, теперь вы будете использовать только стандартные типы сообщений и «таланты», но в будущем … Мне всегда нравится дизайн в гибкой манере, чтобы избежать рефакторинга при каждом изменении.

Надеюсь, поможет.

Если вы хотите сделать это из коробки, я бы сказал, что используйте Advance Custom Fields, он имеет дружественный интерфейс и очень прост в использовании и понимании, вы можете выбрать тип отношения или пост-объект, а затем с некоторой работой по вашей теме вы получите связь между типами сообщений или таксономиями.

http://www.advancedcustomfields.com/resources/field-types/relationship/

http://www.advancedcustomfields.com/resources/field-types/post-object/

Иначе я бы пошел на ответ GM.

Итак, вот что со структурой вроде этого. Это происходит в обоих направлениях. Человек А может быть композитором стихотворения 1 и певцом песни 2, и вы можете связать их через мета. Однако дело в том, что Person A сам является композитором и певцом для начала. Поэтому вы можете сделать что-то вроде этого:
Создайте человека как CPT, создайте новых Лиц и добавьте в них черты, как певец или композитор. Затем создайте CPT для различных видов развлечений, например, для телешоу и для стихов. И затем свяжите Личность через мета-поле.