This repository contains work related to the Cambodian Oral History Project (COHP) at BYU. The project is directed by Dana Bourgerie, professor of Chinese in the Department of Asian and Near Eastern Languages. The project's technical work is overseen by Brian Croxall, assistant research professor in the Office of Digital Humanities.
The site and its current functionality primarily depend on five things:
Additionally, there are a handful of plugins that give the site functionality that the team uses but are not integral to the development work that ODH has done on the site. These include:
In this documentation, we describe how these elements are used and interact with one another.
COHP runs on WordPress. Its uses a child theme of Septera. The child theme makes adjustments to the following items from the default Septera theme:
Several pages are made through shortcodes that can be found in functions.php
. These pages include the Interviews with English Translations, Interviews with Videos, Interview Topics, and Interviews by Location. Each shortcode queries a Pod and returns the values that fit the given parameters.
Due to some interference between the shortcodes and any text on the same page, these pages are built with Elementor in order to have individual blocks for the shortcode and for the text, allowing us to order the blocks on the page how we want.
COHP uses the Pods plugin to create custom content types that function as a simplified database. These custom content types include post types and taxonomies. Custom content types can have bi-directional relationships to other custom content types, allowing us to create semantic relationships where an interviewee
particiaptes in an interview
which is conducted by an interviewer
.
The custom post types are as follows:
The custom taxonomies are used primarily on the Interviewees
custom post type. They are as follows:
Additionally, there is a custom taxonomy that is used on both the Interviewees
and the Interviewers
custom post type:
Custom taxonomies were deployed so the students doing data entry would be less likely to make errors such as spelling or different ways of describing gender.
Both the Stories Included
and Zodiac
custom post types could have easily been custom taxonomies. But since custom taxonomies appear on the righthand side of the WordPress interface, a decision was made to use custom post types so this information would be more visible (and therefore more likely to be completed) to those doing data entry.
Pods makes possible the creation of templates to display information from the custom post types.
Topics in Interviews
, People from Province
, Interviewee Directory
, Interview Template
, Interviewer Template
, and Interviewee Template
. These templates can be used in Facet templates or shortcodes, or they can be added to a Pod through the Auto Template Option in order to automatically generate pages.
Interviewee Directory
template.COHP uses the FacetWP plugin to enable faceted browsing on the Interview Directory. The plugin allows for the creation of facets and templates.
Facets are mostly ways to filter content. There are also facets for pagination and the number of results per page. When creating a new facet, the plugin can look to custom taxonomies or any of the content within a particular Pod. We have created screenshots of the different facets, in case they need to be recreated.
Templates can either be built visually or through HTML/PHP (AKA advanced mode). COHP uses the latter, and the template can be found here.
Critical: If you want a facet to work on a page, its source needs to match the Pod that will be the primary datasource on the page. For example, the Interview Directory is, despite its name, actually comprised of results from the Interviewees
Pod rather than the Interviews
Pod. While the Interviewee
Pod contains a person's date of birth
, their age at the time of interview
is contained in their Interview
Pod. So it was impossible to include a facet for the age at time of interview
in the Interview Directory.
Paid FacetWP accounts have access to a number of add-ons to improve the functionality of FacetWP. This plugin "This lets you create facets based on Pods (meta-based) custom fields."
This plugin allows notifications (AKA emails) to be sent out to certain groups of users when particular events happen. As currently implemented, the team uses this to notify those interested in the project when a new blog post has been published.
This plugin provides shortcodes that can be deployed in parts of the site to indicate copyright and current year. This is currently used in the footer widget for the site.
This plugin allows for a GUI-like experience when constructing pages. This is currently used on pages like Interview Topics. Without this plugin, the explanatory text on the page appeared below the list of topics. This was the most expeditious way to fix that interaction.
This plugin creates easy-to-read logs of all emails sent by the WordPress site. The team used it primarily when first setting up notifications with Better Notifications for WP
to make sure it behaved as desired.
This plugin allows for creating users with CSV. The team used it to create new users that would have particular roles so that those users could receive notifications when new posts were published.
This plugin allows for in-dashboard exploration of Google Analytics. It is ODH's go-to plugin for this feature.
This plugin is used to create forms within the site. The team uses it on the Contact Us and Volunteer pages.
This plugin is used to allow BYU users to log into the site using their Net ID. It is ODH's go-to plugin for this feature. In order for it to be used, users should have their username set to their Net ID (e.g., blc6
) without any domain. Their email address can be set to any address they would like. When creating new users, the Send the new user an email about their account
option should be deselected as log-in process will default to BYU's CAS system.