จาก Thai wordpress
In WordPress, you can write either posts or pages. When you're writing a regular blog entry, you write a post. Posts automatically appear in reverse chronological order on your blog's home page. Pages, on the other hand, are for content such as "About Me," "Contact Me," etc. Pages live outside of the normal blog chronology, and are often used to present information about yourself or your site that is somehow timeless -- information that is always applicable. You can use Pages to organize and manage any amount of content.
Other examples of common pages include Copyright, Legal Information, Reprint Permissions, Company Information, and Accessibility Statement. (By the way, it's a good idea to always have an about page and a contact page -- see this advice from Lorelle.)
In general, Pages are very similar to Posts in that they both have Titles and Content and can use your site's Presentation Templates to maintain a consistent look throughout your site. Pages, though, have several key distinctions that make them quite different from Posts.
Pages in a Nutshell
What Pages Are:
- Pages are for content that is less time-dependent than Posts.
- Pages can be organized into pages and SubPages.
- Pages can use different Page Templates which can include Template Files, Template Tags and other PHP code.
What Pages are Not:
- Pages are not Posts, nor are they excerpted from larger works of fiction. They do not cycle through your blog's main page. (Note: You can include Posts in Pages by using the Inline Posts Plugin.)
- Pages cannot be associated with Categories and cannot be assigned Tags. The organizational structure for Pages comes only from their hierarchical interrelationships, and not from Tags or Categories.
- Pages are not files. They are stored in your database just like Posts are.
- Although you can put Template Tags and PHP code into a Page Template, you cannot put these into the content of a Page and expect them to run. (Note: You can achieve this by using a PHP evaluating Plugin such as Exec-PHP or RunPHP.)
To create a new Page, log in to your WordPress installation with sufficient admin privileges to create new articles. In the Administration Panel, choose the Write tab and then choose the Page subtab to access the page where you can create your new Page.
Changing the URL (or "Slug") of Your Pages
With 2.5, changing the page URL became less intuitive. If you have Permalinks enabled, and you have selected the Day and Name option (Click the Settings tab, and then click the Permalinks subtab), then the permalink automatically shows up below your post title when you start typing in the body of your post (not just the title).
However, if you have a different permalink option selected, or if you don't have permalinks enabled at all, you must do the following to edit your page URL:
- Write a page by going to Write > Page.
- Click the Publish button to publish your page.
- Go to Manage > Pages.
- Click Edit next to your page.
- See the permalink under the title, and click the Edit link to change it.
Thus, if you don't have the right permalink option enabled, you have to publish your pages before you can set the URLs.
Listing Your Pages on Your Site
WordPress is able to automatically generate a list of Pages on your site, for example within the sidebar, using a Template Tag called wp_list_pages(). See the wp_list_pages page for information on how to do the following:
- Sort the list of Pages (to fully customize the order in which the Pages are listed, you might find the "Page Order" section on the Write > Page administration panel useful),
- exclude (or 'hide') a Page from the list,
- Control which Pages are displayed (i.e., all Pages or just certain SubPages), and
- Control how deep into your Page hierarchy the list goes.
Naturally, you can also link to Pages manually with an HTML link. For example, if you want your Copyright Page listed in your footer, that link might read as below:
If you do not have Permalinks set up
<a title="Copyright information" href="wordpress/?page_id=14">Copyright 1996-2006</a>
If you do have Permalinks set up
<a title="Copyright information" href="wordpress/copyright/">Copyright 1996-2006</a>
Note: Your .htaccess file must be writeable for Page Permalinks to work, otherwise you must update your .htaccess file every time you create a 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, suppose you are creating a WordPress site for a travel agent and would like to create an individual Page for each continent and country to which the agency can make travel arrangements. You would begin by creating a Page called "Africa" on which you could describe general information about travel to Africa. Then you would create a series of Pages which would be SubPages to "Africa" and might include "Lesotho", "Cameroon", "Togo", and "Swaziland". Another individual Page is made for "South America" and would feature SubPages of "Brazil", "Argentina", and "Chile". Your site would then list:
- South America
To begin the process, go to Administration > Write > Write Page panel, in the upper right corner of the panel and click the "Page Parent" drop-down menu. The drop-down menu contains a list of all the Pages already created for your site. To turn your current Page into a SubPage, or "Child" of the "Parent" Page, select the appropriate Page from the drop-down menu. If you specify a Parent other than "Main Page (no parent)" from the list, the Page you are now editing will be made a Child of that selected Page. 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:
Individual Pages can be set to use a specific custom Page Template (a PHP template file, e.g., snarfer.php) you create within your Theme (see Creating your own Page Templates below on how to create a custom template). This new Page Template will then override the default page.php Page Template included with your Theme. See What Template is used to Display a Particular Page? below, to find out exactly which Template will be used, but read the following first, so you understand the answer :)
WordPress can be configured to use different Page Templates for different Pages. Toward the bottom of the Write > Page administration panel (or on the sidebar, depending on which version of WordPress you are using) is a drop-down labeled "Page Template." From there you can select which Template will be used when displaying this particular Page.
NOTE: In order to access the Page Template selector, there must be at least one custom Page Template available in the active theme (see Creating your own Page Templates below to learn how to create one).
Default Theme Page Templates
The Default theme contains three Page Templates for your use:
- page.php - Default Page Template: displays Page content
- archives.php - ignores Page content and instead displays a list of Archives by Month and Archives by Subject (by Category)
- links.php - ignores Page content and instead displays your links using get_links_list
What Template is used to Display a Particular Page?
WordPress will look for several template files in your active Theme. The first one it finds will be used to display any given Page. WordPress will look for files in the following order:
- The Page's selected "Page Template"
Creating Your Own Page Templates
The files defining each Page Template are found in your Themes directory. To create a new Custom Page Template for a Page you must create a file. Let's call our first Page Template for our Page snarfer.php. At the top of the snarfer.php file, put the following:
<?php /* Template Name: Snarfer */ ?>
The above code defines this snarfer.php file as the "Snarfer" Template. Naturally, "Snarfer" may be replaced with most any text to change the name of the Page Template. This Template Name will appear in the Theme Editor as the link to edit this file.
The file may be named almost anything with a .php extension (see reserved Theme filenames for filenames you should not use; these are special file names WordPress reserves for specific purposes).
What follows the above five lines of code is up to you. The rest of the code you write will control how Pages that use the Snarfer Page Template will display. See Template Tags for a description of the various WordPress Template functions you can use for this purpose. You may find it more convenient to copy some other Template (perhaps page.php or index.php) to snarfer.php and then add the above five lines of code to the beginning of the file. That way, you will only have to alter the HTML and PHP code, instead of creating it all from scratch. Examples are shown below. Once you have created the Page Template and placed it in your Theme's directory, it will be available as a choice when you create or edit a Page. (Note: when creating or editing a Page, the Page Template option does not appear unless there is at least one template defined in the above manner.)
Examples of Pages and Templates
The following is a list of instructional examples. Feel free to make additions.
Archives with Content
A Page Template that shows the Page's content at the top, and then displays a list of archive months and categories below it. This is designed to work with WordPress's Default theme (aka Kubrick), but will probably work with many other themes with a little modification.
Save this to arc-cont.php:
<?php /* Template Name: Archives with Content */ ?> <?php get_header(); ?> <div id="content" class="widecolumn"> <?php if (have_posts()) : while (have_posts()) : the_post();?> <div class="post"> <h2 id="post-<?php the_ID(); ?>"><?php the_title();?></h2> <div class="entrytext"> <?php the_content('<p class="serif">Read the rest of this page »</p>'); ?> </div> </div> <?php endwhile; endif; ?> <?php edit_post_link('Edit this entry.', '<p>', '</p>'); ?> </div> <div id="main"> <?php include (TEMPLATEPATH . '/searchform.php'); ?> <h2>Archives by Month:</h2> <ul> <?php wp_get_archives('type=monthly'); ?> </ul> <h2>Archives by Subject:</h2> <ul> <?php wp_list_cats(); ?> </ul> </div> <?php get_footer(); ?>
WordPress as a CMS
You can use WordPress for basic content management. If you do, you'll probably create a large number of pages for your content.
Using a Page as the Front Page
WordPress 2.1 introduced the Option to conveniently set any Page as your Front Page. Go to Settings > Reading in the Wordpress Admin interface. Under the Front Page Category, you can choose to set any (published) Page or Posts Page as the Front Page. The default setting shows your blog with the latest blog posts.
Alternate Methods for Setting the Front Page
If you don't want to use the built-in feature to set the home page as a static page, you have two other options. Using the Static Front Page Plugin, it is possible to set any Page as the "front page" of your site. The Plugin modifies the home page query and sticks the Page with a Page slug of "home" to the front page.
When the Page is being displayed as the homepage, if a Page Template with the filename home.php exists for your active Theme, the Plugin will override the Page's set Page Template and use home.php instead. The Page's set Page Template will still apply if the Page is visited like a standard Page (e.g., http://example.com/home/)
As an alternative to the Plugin, WordPress will recognize a "home.php" document in your template directory and use it rather than index.php to theme your front page. However, if your home page isn't your blog, be advised that the home.php template will always apply to the blog page whether you like it or not. Using the query_posts() template tag, you can call on any page before you invoke The Loop. For instance:
<?php query_posts('pagename=home'); ?>
Will call up only the post with the pagename "home." See query_posts() for more examples of the template tag in action.
Including a Page
You might also want to include Pages in various places on your site. That way, you can have an easy way to edit elements of your website. There is a Plugin called Improved Include Page that makes doing this easy.
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 it. 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 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 on the fly, upon each new visit.
Almost everything in WordPress is generated dynamically, including Pages. Everything you and others write in WordPress (Posts, Pages, Comments, Blogrolls, Categories, etc.) is stored in your MySQL database. When your site is accessed, that database information is then used by your WordPress Templates from your current Theme to generate the web page being requested. Thus, WordPress information is dynamic, including the information contained in your Pages.
An example of a static page might be an HTML document (without any PHP code) you've written as an addition to your dynamically generated WordPress pages, perhaps an "About Me" page. 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, in part, to alleviate this problem. By using Pages, users no longer have to update their static pages every time they change the style of their site. Instead, if written properly, their dynamic Pages will update themselves along with the rest of your blog.
Despite the dynamic nature of Pages, many people refer to them as being static. In the context of web publishing, static and dynamic mean what has been described above. More generally, however, static can mean "characterized by a lack of change". It is easy to see how this definition influenced the word's use in describing types of web pages. It is also easy to see why people think of Pages as being static; Posts come and go, but Pages are here to stay since Pages are typically used to display information about your site which is constant (e.g., information about yourself, description of your site).
In other words, a Page contains static information but is generated dynamically. Thus, either "static" or "dynamic" may be validly used to describe the nature of the WordPress Page feature. However, in order to avoid confusion, and because Pages themselves are dynamic while it is only their contents which are in some way static, this document does not refer to Pages as being static.