WordPress.org

Codex

Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Pages

In WordPress, you can put content on your site as either a "post" or a "page". When you're writing a regular blog entry, you write a post. Posts, in a default setup, appear in reverse chronological order on your blog's home page.

In contrast, pages are for non-hierarchical content: pages like "About" or "Contact" would be common examples. Pages live outside of the normal blog chronology, and are often used to present timeless information about yourself or your site -- information that is always relevant. You can use Pages to organize and manage the structure of your website content.

In addition to the common "About" and "Contact" pages, other examples include "Copyright", "Disclosure", "Legal Information", "Reprint Permissions", "Company Information" or "Accessibility Statement".

In general, pages are very similar to posts in that they both have titles and content. WordPress Theme template files maintain a consistent look throughout your site. Pages, though, have several key distinctions that make them different from posts.

What Pages Are

  • Pages are for content that isn't specifically time-dependent, or which isn't "blog content".
  • Pages can be organized into pages and subpages.
  • Pages can use different page templates, including template files, Template Tags and other PHP code.
  • More sophisticated themes may provide a wider range of adjustments or display options for individual pages.
  • It's quite possible to make a website using WordPress which only contains pages.

What Pages Are Not

  • Pages are not posts, so they don't appear in the time-structured views within a blog section of a website.
  • Pages cannot be associated with Categories, but they can be assigned Tags. However, Tags on Pages are not included in lists displayed via the "tag" permalink.
  • The organizational structure for Pages comes from hierarchical interrelationship, not from a system of categorization. (e.g. Tags or Categories.)
  • Pages are not files. They are stored in your database, just like posts.
  • Although you can put Template Tags and PHP code into a Page Template file, you cannot put these into the Page or Post content without using a WordPress Plugin. But be careful: integrating PHP code directly into page or post content may introduce a security problem, or an unexpected error on your website.
  • Pages are not included in your site's "feeds". (e.g. RSS or Atom.)
  • Pages and Posts can be interpreted differently by site visitors and by search engines. Commonly, search engines place more relevance to time-dependent site content - posts - because a newer post on a topic may be more relevant than a static page.
  • A specific page (or a specific post) can be set as a static front page. Websites which are set up in this way usually have a secondary page defined on which the latest blog posts are displayed.

Creating Pages

Pages > Add New
To create a new Page, log in to your WordPress installation with sufficient admin privileges to create new pages. Select the Pages > Add New option to begin writing a new Page.

Organizing Your Pages

Just as you can have subcategories within your Categories, you can also have subpages within your Pages, creating a hierarchy of pages.

For example, a WordPress site for a travel agent may feature an individual Page for each continent and country to which the agency can make travel arrangements. Under the Page titled "Africa" would be subpages for Cameroon, Lesotho, Swaziland and Togo. Another parent Page "South America" would feature subpages of Argentina, Brazil and Chile.

The structure of the pages on the site would then look like this.

  • Africa
    • Cameroon
    • Lesotho
    • Swaziland
    • Togo
  • South America
    • Argentina
    • Brazil
    • Chile

To create a subpage

  1. Go to Administration > Pages > Add New panel.
  2. In the right menu, click the "Page Parent" drop-down menu. The drop-down menu contains a list of all the Pages already created for your site.
  3. Select the appropriate parent Page from the drop-down menu to make the current Page a child Page.
  4. Add content to the subpage.
  5. Click Publish when ready.

When your Pages are listed, the Child Page will be nested under the Parent Page. The Permalinks of your Pages will also reflect this Page hierarchy.

In the above example, the Permalink for the Cameroon Page would be:

http://example.com/africa/cameroon/

Changing the URL of Your Pages

To change the URL part (also referred to as "slug") containing the name of your Page, use the "Edit" (or "Change Permalinks" in older WordPress versions) button under the Page title on the Edit screen of the particular Page, accessible from Pages tab of WordPress Administration Panel.

Creating a List of Pages

WordPress is able to automatically generate a list of Pages on your site within the sidebar or footer, for example, using a Template Tag called wp_list_pages(). See the wp_list_pages page for information on how to customize how WordPress displays the list of Pages on your site.

There are also WordPress Plugins that will help you display a list of Pages within in Posts and in other areas of your WordPress Theme.

Page Templates

Individual Pages can be set to use a specific custom Page Template (a WordPress Theme PHP template file, e.g., my-custom-page.php) you create within your Theme. See Custom Page Templates for instructions on how to create a custom template file for a Page. This new Page Template will then override the default page.php Page Template included with your Theme.

The Dynamic Nature of WordPress Pages

A web page can be static or dynamic. Static pages, such as a regular HTML page that you might create with Dreamweaver, are those which have been created once and do not have to be regenerated every time a person visits the page. In contrast, dynamic pages, such as those you create with WordPress, do need to be regenerated every time they are viewed; code for what to generate on the page has been specified by the author, but not the actual page itself. These use extensive PHP code which is evaluated each time the page is visited, and the content is thus generated upon each new visit.

Almost everything in WordPress is generated dynamically, including Pages. Everything published in WordPress (Posts, Pages, Comments, Blogrolls, Categories, etc...) is stored in the MySQL database. When the site is accessed, the database information is used by your WordPress Templates from your current Theme to generate the web page being requested.

An example of a static page might be an HTML document (without any PHP code). The problem with purely static pages is that they are difficult to maintain. Changes you make to your WordPress settings, Themes and Templates will not be propagated to pages coded only in HTML. The Page feature of WordPress was developed to alleviate this problem. By using Pages, you no longer have to update your static pages every time you change the style of your site. If written properly, your dynamic Pages will update along with the rest of your blog.

Despite the dynamic nature of Pages, many people refer to them as being static. They are actually called "pseudo-static" web pages. In other words, a Page contains static information but is generated dynamically. Thus, either "static," "dynamic," or "pseudo-static" may be validly used to describe the nature of the WordPress Page feature.