Chapter 5. Custom Post Types, Post Metadata, and Taxonomies

CPTs are what really makes WordPress a content management system. With them, you can quickly build out custom functionality and store data in a consistent way.

Default Post Types and CPTs

With a default installation of WordPress, you have several post types already being used. The post types you may be most familiar with are pages and posts, but there are a few more. These post type values are all stored in the database wp_posts table, and they all use the post_type field to separate them.


WordPress pages are what you use for your static content pages like home, about, contact info, bio, or any custom page you want. Pages can be indefinitely nested in any hierarchical structure. They can also be sorted by menu_order value.


Your posts are your blog or news or whatever you want to call your constant barrage of content to be indexed by internet search engines. You can categorize your posts, tag them with keywords, set publish dates, and more. In general, posts are shown in some kind of list view in reverse chronological order on the frontend of your website.


Whenever you upload an image or file to a post, it stores the file not only on the server, but also as a post in the wp_posts table with a post_type attachment.


WordPress has your back and saves your posts as revisions every time you or anyone edits a post. This feature is on by default, and you can use it to revert your content ...

Get Building Web Apps with WordPress, 2nd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.