I'm working on creating a basic database for a theatre and really need some suggestions as the best way to approach this.

Each production from this theatre will have its own page. The page should display who was in the production, displayed in a table. This information is "set", and doesn't need to change dynamically, though it would be nice to be able to display a thumbnail image for each actor (and display a default blank image if no headshot is available). I would like the user to be able to click on an actor's name to display a list of other productions that the actor has been involved in.

Here's a picture to give an idea: theatre database

For an idea of how the site might function, it should be similar to ibdb.com or playbillvault.com

My idea:

Create custom taxonomy for each actor. Add custom meta field to new taxonomy for headshot image.

Store info for each production in a CSV file and use PHP to generate an HTML table when the page loads. Use PHP to grab meta information about each actor and display headshot image.

Can anyone give me any feedback as to whether there is an easier or better way of approaching this? Any feedback would be strongly welcomed!

  • Why not try a custom post type for actor, and the featured image can be the actor thumbnail? Jan 16, 2015 at 22:28

2 Answers 2


First thoughts - a custom tax for actors might work. The Taxonomy Images plugin will make adding the headshot easy. I'd maybe make the production a post - or an instance of a CPT - I wouldn't mess around with CSVs at all. You'd build the table in the post. I would perhaps create a shortcode that you could add into this table, which would generate a link (with thumbnail) to the term (actor) archive.


This could be easily accomplished using the plugin Advanced Custom Fields which allows you to easily create relationships between custom post types. However if you don't want to use the plugin, you can also create the metaboxes yourself.

  1. Create a custom post type for Productions
  2. Create any necessary custom fields for Productions
  3. Create a custom pos type for Actors
  4. Create any necessary custom fields for Actors
  5. In Productions create a "Relationship" field that allows you to select and order all actors that were in that production.

Step 5 establishes the relationship. So now in the production page you will have a field that you can loop through with every actor selected. And in the Actors page you can run a query to find which production that actor was selected in.

I am not here to promote a plugin. All of the above can be accomplished with out a plugin. The plugin just saves you time.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.