On my website, I have a CPT for academic research publications. I want to include the authors as a taxonomy or field item. The easiest way to do this in Types would probably be as a single-line text field that allows multiple instances, since most publications have multiple authors. However, this approach doesn't permit me to do two things I would like to do:
* I want to distinguish between the author's first name and last name. (Middle names or anything else would be part of the first name subfield.) Specifically, I would normally display the author's name as first-name last-name, but in a few places I would want to display some authors' names as "Last-name, First-name"; I would even like to mix and match, such as when a publication is cited as "Lastname1, Firstname1, Firstname2 Lastname2, Firstname3 Lastname3". Moreover, whenever listing authors, I would want to sort by last name, even if the display is in the "Firstname Lastname" format. I want to use a custom structure that would give me this flexibility.
* I would like to easily list all publications for an author, and so take advantage of built-in and semiautomatic functions, such as archive pages.
Here are my considerations of possible solutions:
* Custom field: This was my first attempt, as mentioned above. Although Types permits me to set up multi-instance fields, I cannot figure out how to separate an author name into first name and last name subfields. Moreover, custom fields don't give any semiautomatic display options such as archive pages.
* Custom taxonomy: This has the advantage of easy archive pages, but like a custom field, I don't see how I can easily separate an author name into first name and last name subfields.
* Custom post type: If I were to create a publication_author CPT with a child relationship to research_publication, I could then set up custom fields for first and last name and have maximum display and archive flexibility. However, I really think this is overkill. The only things I want to store about an author are their first name and last name as separate subfields, nothing else. An entire CPT for just that would probably be more trouble than it's worth, with lots of unnecessary overhead.
Based on these considerations, could you please tell me how I could use Types to create the structure I need? I would ideally like to use a custom taxonomy, but I don't know how to configure it to meet my needs.