I've been developing sites in WordPress for two years now and there's a problem that I often come up against. I'm wondering if anyone has any recommendations for dealing with it - be they techniques, hacks, plugins, pages I've missed in the codex… :)
Taxonomies are a great way of organising posts, pages or any content but often I want to link content (posts of one type or another) directly.
For example - I'm creating a site for an arts festival and I have two custom post types, 'Artist' and 'Piece'. Some artists may have created multiple pieces and some pieces may have been created by multiple artists.
Each artist page would show the pieces they had created and each piece page would show the artists that had made them.
Now, both Artist and Piece posts need to be fully editable posts. They need to have all sorts of information associated with them (artists would need a profile, pieces would need description, location, times etc) so neither of them could be created as a taxonomy instead of a post type. They need their own page.
I think the expected solution is to create an intermediary taxonomy, i.e. to have an 'Artist' taxonomy as well as an 'Artist' post type and to then add all the names of the artists as terms under the taxonomy, associate each artist post with the corresponding term, and then you could go through the pieces and associate them with the corresponding artists. Phew.
This is not a great solution though as there is extra legwork and maintenance involved. Also neither post type is more important than the other, they are both essential. It also a bit unintuitive, particularly for a client.
Ideally, there would be a way to indicate a relationship between these two post types which would allow to then cross-reference the posts within them - and preferably this would look like the categories window in the right column on the edit post page, contain a list of all the posts in the other type. That's the dream!
I've gotten by using Microkid's Related Posts plugin which allows you to manually associate posts, it's a great plugin but I'd like to know how other people are dealing with such situations.
Is there a better way to do this?