Where exactly shall that be displayed?
We need to tell the View what data to get from where so to display it's related posts.
For example, if I setup your exact schema locally and want to display what you show above on any page, then:
- I set up the Exact Post Types and connections + Fields as you outline
- I create a View that queries the most "Common" Custom Post Type, that is NOT an *explicit single parent*:
Tracks.
- In the View Loop, I can directly display all Tracks with the ShortCode for the Post title:
[wpv-post-title]
-- I can display the direct related posts to the tracks if they are single parents (Works) by simply calling the Parent Title Field:
[wpv-post-title item="@work-track.parent"]
---- I can display the Writer, related to the work which is related to the current Track.
Here you need a second View, which queries the Writer Post Type, and has a Query filter as:
Select posts in Any relationship that are related to the Post with ID set by the shortcode attribute wpvrelatedto.
eg. [wpv-view name="view-name" wpvrelatedto="123"]
This View is now inserted in the First View's Loop and you pass a ShortCode Attribute to pas the ID of the parent Writer:
[wpv-view name="writers" wpvrelatedto="[wpv-post-id item='@work-track.parent']"]
Of course in that same view I can add other Fields as well belonging to writers or their connections.
--- I can display the Pitches related to this track as well with the same method:
[wpv-post-title item="@pitch-track.parent"]
As well I can display their fields the same way, or reference Fields.
The setup is relatively complex.
It may as well generate some performance slow downs if you plan to have a massive amount of posts in those connections, but all over I see no issue implementing this.
The Design will be a problem to keep in one table, as the View, which we insert in the other View's loop, will break any surrounding wrapper HTML, as that will always come packed in View's Standard HTML loop.
So, you can for example not output the contents of View A in View B inline with any other content due to the default HTML DIV that wraps your View Loop
However, from the point of view to create the data structure and its query, that should be possible as above outlined with Toolset View