使用标准的Wordpress功能很简单,这是不可能的,除非使用复杂且性能不佳的技巧。
我建议您使用的方法是创建自定义表where store relationship。
它应由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
了解一个人的id,你就知道他/她的所有才能以及与哪些职位相关。同样地,知道一个职位id,你就知道所有相关的人,以及该职位所涉及的人才。
获取和显示数据很容易:一旦人、人才、歌曲和节目成为wordpress的标准实体(帖子、术语),你就不需要做任何事情来创建url来选择性地显示它们,你也可以更好地利用模板层次结构。获取自定义关联非常简单,只需几行sql即可完成。
存储自定义关联有点困难:作为wordpress核心的一部分,您必须为范围构建完整的UI。没有什么是不可能的:你只需要一个有一些行(或更好的能力,以友好的方式添加行)的元数据库,每行有两个选择菜单:一个用于人员,一个用于人才。
请注意,这种方法允许将人们与每种帖子类型和每种分类法联系起来:也许现在您将只使用标准的帖子类型和“人才”,但在将来。。。我总是喜欢以灵活的方式进行设计,以避免在每次更改时进行重构。
希望有帮助。