Show child custom post types on single-{parent}.php?

One post type can be the child of another post type: attachments for example are children of posts or pages. The association is described in the posts table in a field post_parent that holds a post ID.

But … what you want can be solved in many different ways. You don’t have to use the post_parent field. I don’t think that a simple hierarchy can reflect the relations between your objects. You need probably many-to-many relations, and these are not native to WordPress.

  • One blog post or page can cover multiple events, multiple artists or both.
  • One event can be associated with multiple artists and vice versa.

Possible solutions

  • Create a custom taxonomy for artists and build a shadow custom post type for it to hold longer text information and attachments. Not easy to manage, the code gets messy very fast.
  • Save the relationships in post meta data. Then have to decide which data are stored on which post, your queries will get very long and complicated.
  • Use separate tables (one for relationships, one for meta data about these relationships). Requires good knowledge of the WordPress data base API, and you have to take special care to catch these tables in backups and export files.

Maybe the plugin Posts 2 Posts will help you. It uses two extra tables – which is (from my experience with similar situations) the fastest option.

See also this related post about a similar question.