The design benefits of WordPress are well known: off-the-shelf design templates (themes), blogging, easy page building and content editing that’s as simple as editing your Facebook profile. But a very powerful and mostly unknown data structuring tool lurks just beneath the surface, and unleashing its power can be the key to effective structuring of a WordPress website.

This tool is custom post types (CPT).

What is a Custom Post Type?

CPT is an abstraction of the familiar structure behind blogging. A blog is a series of posts that include a title, publication date, and article content. Posts are also assigned to an author and one or more categories and tags that further describe the blog post, like how adjectives color a noun.

If you generalize the blog post concept, consider that a “post” can simply be any data record with fields that match whatever real-world component you want your website to represent. If your business is a medical group and you want your website to list doctors’ bios, then you can define a custom post type called Doctor, and then define custom fields for “date joined the practice,” “medical school attended,” and “biography.” Think of these elements as part of the noun—they are parts of the “thing” that make it what it is.

The next step is to better describe your custom posts with categorization that can also apply to other posts. Using the doctor example, categories can include Medical Specialty or Offices Staffed. Each category set, called a taxonomy in WordPress, can then be applied to other posts in the same type. In other words, you can apply the specialty of Pediatrics to three of the eight doctors in the practice. A post can be categorized with more than one value, for example, if one doctor has multiple specialties and works in two or three different office locations. You can see now that such a structure would easily support a website feature that would allow a site visitor to narrow down the available doctors to those who practice pediatrics in the nearest office location.

When a CPT structure is defined in WordPress, the developer can create nice admin screens where non-technical editors can create new posts (new Doctor) and then fill in the blanks for all of the fields. The editor can also easily find an existing post and edit any of its values. Categorizing the post can be as easy as checking off the boxes in a list of medical specialties and office locations.

A well-structured CPT design can allow elements of the site to relate to each other. This is done by allowing the posts of one type to serve as the category values of another type. Using the medical doctor example, we can use the post type Doctor as a taxonomy for another post type called News. As a result, when the editor enters a news story, they can check off boxes for which doctors are mentioned in the news story. That allows us as site designers to program a feature that lists news pertaining to each doctor on the doctor’s bio web pages.

Using custom posts and taxonomies to structure the data underlying a website can replace the technique of trying to build traditional WordPress pages for each data record. Implementing that content via pages would typically require the editor to know that for a doctor page, you need to select a certain parent page, a page template, and possibly an arbitrary or undocumented subset of custom fields. And there is no structure in WordPress for categorizing pages. Using the CPT structure allows for much less editor training and can enforce certain required values. And the power of categorization is compelling.

You can see custom post types benefiting our recent work here:

Concerts for the Cleveland Pops Orchestra:
http://www.clevelandpops.com/concerts/

Products for Assembly Specialty Products:
http://www.assemblyspecialty.com/products/wire-rope-fittings/

Events at Judson Services retirement community:
http://www.judsonsmartliving.org/events/

Our Work examples for Dynamics Online:
http://www.dynamicsus.com/our-work/

We are glad to discuss with you how powerful data structuring in WordPress can build a strong foundation for your website content.