Posts vs Pages

Learn about the technical differences between posts and pages, which one to use, when and why.

Should it be a Post or a Page?

How to determine which one to use

  • Is organization of this content important?
  • Would you want entries of this content to be archivable or searchable?
  • Are you expecting to be able to categorize this content and to sort through all the entries?
  • Are you expecting to be able to tag this content and to filter through all the tags?
  • Are you going to want to add more of the same kind of content in the future?

If even one of these questions were answered with a "yes" you need to use posts!

What Do you mean, "Posts" ... isn't that a "blog?"

When people hear the word "Posts," they think it means "Blog." This isn't necessarily true. Blogs are a kind of post.

All blogs are posts, but not all posts are blogs.

For Example:

  • Yes, Blogs are in fact posts - BUT
  • Products are posts with extra fields
  • Job listings are posts
  • Property listings are posts
  • Events are posts

The similarities between things like blogs, products, job listings, property listings and events are:

  • There's an archive page that shows all of them - Every time you add a new one of them, it appends to the list on their archive once published
  • They are easily searchable and sortable
  • You can place them in categories and you can add tags to them
  • Each category and tag archive page lists all the posts that fit that category or tag, ordered by their publish date

Technical Differences

What sets "posts" apart from "pages"?

  • Static vs Dynamic Content –

    By definition, pages are static, one-off publications while posts are chronologically listed entries.

  • Taxonomy –

    Only posts have categories and tags, pages don’t. You Can Categorize, organize and sort Posts, but Pages Are Hierarchical. You can't see an archive of pages and you can't sort or filter through them the same way you can with posts.

  • Hierarchy –

    Only pages have a hierarchy. Pages, cannot use categories or tags. You can make one page a “parent” and another page a “child”. This helps you to group related pages together - it doesn't help you sort, categorize or tag them. 

Here's a cool graphic from Devrix that explains it visually

Relevant Sources:  WPWhitesecurity | Devrix

Keeping the above Differences In mind...

Posts don't equate to a page - not in effort, not in time taken to build, not in any aspect.

  • When adding a new PAGE

    A page requires you to build out its content, add different modules, add content to each module with no pre-population, move things around in respect to other pages - every time you add a page.

  • When editing the layout of a PAGE or multiple pages

    If you want to make a change to an item that's used in a page's layout or in multiple pages' layouts, you will have to individually edit each page and fix that item in all instances on each page, one at a time.

  • When adding a new POST

    A post requires that you build a themer layout for it once - you add posts by simply placing their content in the editor and publishing. The posts will automatically assume the layout of the themer template.

  • When editing a POST's layout

    If you want to make a change to a layout item that's visible on all posts, you only have to edit the themer layout, make the change once and it will apply to all posts using that layout, once you save it.

Relevant Examples

Scenario: Team Members

Task: Place 4 team members on a page. Each team member should have an image, their designation and a link to their full biography. The team is growing with the intent to add more team members in the future.

  • Would you add the team members using a team members module placed in 4 columns, with their bios linking to "pages" created for each team member?

    NO. That means every time they add a new team member, they'd have to add a new column with a module in it and create a new page for each team member, copy the layout from another team member and style it.

    There will be a time when they have several team members and a separate page for each team member containing their bio. If they wanted to make a change to the way the bios are laid out, they'd have to make that change individually on every single team member's page, one at a time.

  • Would you add the team members using 4 columns with a modal popup module containing their bio in it?

    NO. Popups are bad m'kay. Also that means every time they add a team member, they will have to add a new column with a popup module holding the bio. There will be a time when they have 12 team members and want to add another, but the page will refuse to load because of all the scripts running from all the popups and all the content within each popup. That’s a poor experience for everyone.

  • Would you add the team members to a page with their bio links anchor-linked to a section below for each team member's full bio?

    NO. That means every time they add a new team member, they'd have to add a new column with a module in it and create a new row on the page to anchor it to. There will be a time when they have several team members on the page with a row for each team member containing their bio, making the page extremely long, very slow to load and extremely difficult to add to.

  • Would you make the team members posts under a category called "team" with a custom field for designation, add them and then use a posts module to display them on the page?

    YES. This is the most efficient way to arrange the content requested that will result in the best experience for anyone adding team members in the future. The proper steps you'll need to take are outlined in the column to the right.

Here's how you'll do it

  • Create a post category called "Team" - Add all 4 team members as posts categorized under "Team"
  • The team member's name would be the title, their bio would be simply pasted in the editor, and their picture would be placed in the post's featured image area
  • Add a custom field to the posts called "designation"
  • Create a "singular" themer layout for all posts in the category "Team"
  • Place a posts module on the requested page with a custom query set to show all posts within the category "Team"
  • You can sort the posts in ascending or descending order depending on the title or the date they were added
  • You can use a "custom layout" in the posts module as to remove all the content, leaving the featured image and the "read more" link, changing it to say "read bio"
  • In the custom layout, you will use a "field connection shortcode" to display the custom field "designation"
  • You will be able to style this module in the module settings and using CSS for higher-level styling
  • OR you could create a "custom post type" for team members.

How to create custom post types and when to use them will be covered in detail in "Pods." Field connections will be discussed in "Pods & Themer" - BUT reference this index for now.

Scenario: Testimonials

Testimonials are another common scenario that would benefit from a very similar solution to the teams scenario above -- if there are more than 3 reviews... If there are going to be more than 3, you want the latest few to show on the homepage perhaps, but you want a link to take you to a page with all the testimonials to look through.

USE POSTS
  • Follow the steps shown above for teams
  • Use a post carousel to display the latest 3 or 4 on the homepage and style it to look like a testimonial slider. This carousel will auto update every time they add a new testimonial to their site.
  • Use a posts module to place all posts categorized as "testimonials" on a page for them. Create a themer layout for all posts categorized as "testimonials" for when each one is clicked individually.
  • DON'T put 50 testimonials in a testimonial slider - it will eventually become overloaded and slow, it will become impossible to add more to after a certain point, and it may break the page one day.

Don't Do This

Consequences of a Poor Layout

In the following example, the screenshot depicts a page called "Areas of Specialization in Counselling and Therapy." On this page each item or "area of specialization" was an interactive banner with a link triggering a modal popup. The modal popups were in a row below these interactive banners set to trigger via CSS class. After adding so many interactive banners to the page with their respective modal popups below, the page became extremely slow and the links stopped working altogether.

In such scenarios, in a future update request where the task is simply to add another popup to the page, the inability to edit the page due to how heavy it becomes, results in us having to redesign the entire page layout properly. This is extra, repetitive, tedious work - undoing it and redoing it the way it should have been done to begin with.

How to fix this situation

  • turn each item on this page into a post - the interactive banner images for each item would be their "featured image," the name of the item would go in the "title," and the content from inside each modal popup would be placed in the editor of the post
  • place all these posts in a category called "specialties" or some such name
  • then come back to this page - remove all existing content, and place a posts module on it, with content set to "custom query" displaying all posts under the post category name "specialties"
  • this will allow the customer/future builder to easily edit each post to add content
  • every time they add new posts to the category, it will append to the page automatically without making it heavy like a modal popup
  • create a singular themer layout for all posts catgorized under "specialties" for when a post is clicked
You can still achieve the "look" of the existing layout using a posts module:
  • you can use the module "PowerPack content grid" - its style 9 allows you to lay out posts in a "gallery" format with the featured image and the heading text on top - use css to style it to remove the black background and center it
  • you could use any posts module that allows you to create a custom layout and choose "custom style" - then modify the layout and style it to appear like the interactive banners do
Table of Contents
    Add a header to begin generating the table of contents
    Next Steps

    Learn about custom post types made with "pods" and how they work.