WordPress can hold and display different types of content.

A single item of such a content is generally called a post, although post is also a specific post type. Internally, all the post types are stored in the same place, in the wp_posts database table, but are differentiated by a column called post_type.

Default Post Types

There are five post types that are defined and available to use in any ways:


Post Type: 'post'
Post is a post type that is used by blog. Posts are normally displayed in a blog in reverse sequential order by time (newest posts first).


Post Type: 'page'
Page is like post, but it lives outside the normal time-based listings of posts. Pages does not have categories and tags. Pages can use different page templates to display them. Pages can also be organized in a hierarchical structure, with pages being parents to other pages.


Post Type: 'attachment'
Attachment is a special post type that holds information about a file uploaded into the WordPress media such as its description and name.

For images, this is also linked to metadata information, stored in the wp_postmeta table, about the size of the images, the thumbnails generated from the images, the location of the image files, the HTML alt text, and even information obtained from EXIF data embedded in the images.


Post Type: 'revision'
Revision is used to hold a draft post as well as any past revisions of a published post. Revisions are basically identical to the published post which they belong to, but have that post set as their parent using the post_parent column of the wp_posts table.

Navigation menu

Post Type: 'nav_menu_item'
Navigation Menu is a post type that holds information about a single item in the WordPress navigation menu system.

Custom Post Types

As of WordPress 3.0, you are allowed to add your own post types and use them in different ways.

Custom post types are new post types you can create. A custom post type can be added to WordPress via the register_post_type() function.

My next articles will discuss further regarding custom post types.