We built this site in WordPress using a combination of several commercial plugins and themes:
- Advanced Custom Fields Pro for adding metadata to books, relying heavily on the relationship field for the connections between books and tagsets and the relationships between taxonomy terms (synonyms, related terms, multiple parent terms)
- Relevanssi Premium for relevance-based search results
- Gravity Forms for our contact and user signup forms
- The Genesis theme framework
Some free plugins as well:
- ACF Post 2 Post, an extension for Advanced Custom Fields to make the book/tag set relationship bidirectional (unfortunately it doesn’t work for taxonomies, and we had to build that logic)
- Members for managing user roles
- Term Management Tools for merging terms and moving terms from one vocabulary to another
- YARPP for the “similar books” feature
There were some things we built by hand:
- Two custom post types (books and tag sets) and fifteen custom taxonomies
- The search filters (FacetWP is lovely but did not do what we wanted)
- The logic to make Relevanssi respect synonyms when searching
- Some logic to distinguish node labels and preferred terms from other tags
- Combining users’ tags, entered in the tag sets, and attaching them to the books
- Permissions for tag contributors, which are somewhat different from WordPress’s built-in roles, including private comments (in line with UW IRB requirements for researchers)