wordpress:頁面-預設外觀主題頁面模板
你可以在WordPress中撰寫日誌(文章)或是頁面。當你撰寫一般的部落格文章時,就是撰寫日誌(文章)。這些日誌(文章)會按逆時間順序排列在部落格首頁上。而頁面則是如"關於博主", "聯絡博主"這樣的內容,它們是不受時間規則影響的,其內容一般很少改變。你可以使用頁面來組織和管理任意數量的內容。
常見頁面包括的內容還有:版權,相關法律資訊,轉載許可,公司資訊及可訪性宣告。(順帶提一下,最好建立一個介紹頁面和提供聯絡方式的頁面 -- 可以參看一下Lorelle給出的相關建議。)
一般說來,頁面跟日誌(文章)很相似,它們都有標題和內容,並且通過使用外觀模板使外觀風格保持一致;但在這一方面,頁面卻具有若干區別於日誌(文章)的重要特點。
頁面是什麼
頁面可以:
頁面不能:
- 頁面不是日誌(文章),也不是大片文章的節選。它們不會像日誌(文章)那樣周而復始地出現在部落格主頁上。(注:你可以使用[Inline Posts外掛]在頁面中包括進日誌(文章)。)
- 頁面無法與分類關聯,也無法被指派標籤。頁面的組織結構僅由各層的相互作用而產生,與標籤或分類並無干係。
- 頁面不是檔案。它們與日誌(文章)一樣是被儲存在資料庫中的。
- 雖然你可以在頁面模板中加入模板標籤和PHP程式碼,但卻無法將它們加入頁面內容中並企圖讓它們運作。(注:你可以使用如
建立頁面
如果你具有足夠的管理許可權,就可以登入WordPress來新建文章,並以此新建一個頁面。選擇[管理面板]>[頁面]>[頁面新建]進行新的頁面的建立。
修改頁面的URL(或"Slug")
自2.5版以來,頁面URL的修改變得不那麼直觀了。如果你啟用了永久連結並選擇了Day and Name選項(點選設定標籤,然後點選永久連結子標籤),那麼當你輸入日誌(文章)主體時,永久連結就會自動顯示在日誌(文章)標題之下。
但如果你選擇了永久連結相關的其他選項,或根本沒有啟用永久連結的話,就需要按照如下步驟來編輯頁面URL了:
- 通過撰寫 > 頁面
- 頁面內容完成後點選釋出按鈕。
- 開啟管理 > 頁面。
- 點選頁面旁的編輯。
- 點選編輯連結來修改出現在標題之下的永久連結。
也就是說,如果你沒有啟用正確的永久連結選項,就得在頁面釋出之後才能對URL做修改。
列出網站頁面
WordPress能夠自動列出網站上的頁面,比如通過使用名為wp_list_pages()的[模板標籤]將它們顯示在邊欄中。以下操作的指導請參見[wp_list_pages]的相關頁面:
- 頁面列表排序(自定義頁面列表內的排列次序,撰寫 > 頁面管理面板中的"頁面排序"部分就很有用),
- 將某個頁面從列表中[剔除](或 '隱藏'),
- 控制頁面的顯示(顯示所有頁面或是顯示特定的子頁面),及
- 控制列表中頁面層次的深度。
你還可以使用HTML連結手動連結到頁面。舉個例子,如果你希望版權頁面顯示在頁尾中,那麼該連結就會顯示為:
如果你沒有設定[固定連結]
<a title="Copyright information" href="wordpress/?page_id=14">Copyright 1996-2006</a>
如果你設定了[固定連結]
<a title="Copyright information" href="wordpress/copyright/">Copyright 1996-2006</a>
注:你的.htaccess檔案必須為可寫以使得頁面永久連結起效,否則的話每當新建頁面時,你就必須更新一下.htaccess檔案。
組織頁面
正如你可以在分類下建立子分類一樣,你可以在頁面中建立子頁面,即建立具有層次的頁面。
假定你用WordPress為某個旅行社做一個網站,然後為各大洲和各國家建立獨立的頁面,以便於旅遊事宜的管理排程。你可以建立名為“非洲”的頁面,在該頁面上你可以給出有關非洲旅遊線路的資訊。然後你可以在"非洲"這一頁面下建立一系列的子頁面,"賴索托","喀麥隆","多哥"和"史瓦濟蘭"。同理,還可以建立"南美"頁面,然後它的子頁面就可包括有"巴西","阿根廷"和"智利"。你的站點看起來就會這個樣子:
- 非洲
- 喀麥隆
- 賴索托
- 史瓦濟蘭
- 多哥
- 南美
- 阿根廷
- 巴西
- 智利
開啟管理 >撰寫 > 撰寫頁面面板,在面部右上角點選"父頁面"下拉選單。下拉選單中包含了網站中已有頁面的列表。如要將當前頁轉為子頁面或父頁面的子頁面的或,請從下拉選單中選取適當的頁面。如果你從列表中指定了一個父頁面,那麼當前正在編輯的頁面就會成為已選頁面的子頁面。當頁面被羅列出來時,子頁面會被巢狀在父頁面之下。而從這些頁面的固定連結也能看出出頁面的層次結構。
上例中喀麥隆頁面的固定連結就該是:
http://example.com/africa/cameroon/
頁面模板
單個頁面可以使用外觀主題中特定的自定義頁面模板(PHP模板檔案,如snarfer.php)(參見定製模板指導下的[#Creating_Your_Own_Page_Templates 建立自己的頁面模板])。新的頁面模板會覆蓋外觀主題中預設的page.php頁面模板。 參見後文[#What Template is used to Display a Particular Page?|使用何種模板顯示某特定頁面?],來看看該使用哪種模板,不過請先讀完下面這一段,這能幫助你理解該問題的答案:)
WordPress經配置可使用不同頁面的不同頁面模板。在撰寫 > 頁面 管理面板之下(或邊欄中,這取決於你所使用的WordPress版本)有一個標有"頁面模板"的下拉選單。在此你可以選擇顯示某特定頁面所用的模板。
注:為了能夠訪問頁面模板選擇器,在當前活動外觀主題中至少需有一個可用的自定義頁面(參見後文[#Creating Your Own Page Templates|建立自己的頁面模板來了解如何進行建立])。
預設外觀主題頁面模板
預設外觀主題包括了3種可供使用的頁面模板:
- page.php - 預設頁面模板:顯示頁面內容
- archives.php - 忽略頁面內容,而是按月或按主題(按分類)顯示一系列的歸檔
使用何種模板顯示某特定頁面?
WordPress會在當前活動外觀主題中查詢若干模板檔案。首個查詢結果將會被用來顯示給定頁面。WordPress會按如下順序查詢檔案:
- 頁面所選用的"頁面模板"
- page.php
- index.php
建立自己的頁面模板
定義各頁面模板的檔案可在[Using Themes|外觀主題]目錄下找到。要為某頁面新建一個自定義頁面模板的話,你需要新建一個檔案。現在我們將這個頁面模板命名為snarfer.php。在snarfer.php檔案頂部輸入如下內容:
<?php
/*
Template Name: Snarfer
*/
?>
以上程式碼定義snarfer.php檔案為"Snarfer"模板。"Snarfer"這個頁面模板名稱可以任意修改。該模板名稱將出現在外觀主題編輯器中,並作為編輯該檔案的連結。
該檔案可被任意命名,副檔名為.php(參見你不應使用的檔名保留(不可用)的外觀主題檔名;這些檔名是WordPress保留下來以備特殊之用的檔名)。
以上五行程式碼之後的內容可就是你自己的事啦。剩下的程式碼則是控制頁面使用Snafer頁面模板的顯示方式。你可以檢視一下模板標籤中可用在這裡的WordPress各類模板函式的介紹。你可以將其他模板(可以是page.php或index.php)的內容複製到snarfer.php中,然後在檔案開頭加上上面五行程式碼,這樣做起來會比較簡單。如此一來,你只需要對HTML和 PHP程式碼做調整,而不需要重新建立了。這在下面給出了相關例子。一旦你完成了頁面模板的建立,就將其置入外觀主題目錄,然後當你建立或編輯頁面時就可以使用它了。(注:當建立或編輯頁面時,頁面模板選項是不會出現的,除非你使用上述方式定義了至少一個模板。)
頁面和模板樣例
以下為指導性的樣例列舉。
帶有內容的歸檔
該頁面模板會在頂部顯示頁面的內容,然後在內容之下顯示一個含有月歸檔和分類的列表。它能夠用於WordPress的預設外觀主題(aka Kubrick),相信只需稍加修改就能使用在很多其他的外觀主題中。
將以下內容儲存至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的預設外觀主題(aka Kubrick),相信只需稍加修改就能使用在很多其他的外觀主題中。
將以下內容儲存至pageofposts.php:
<?php /* Template Name: PageOfPosts */ get_header(); ?> <div id="content" class="narrowcolumn"> <?php if (is_page('21') ) { $cat = array(12); } elseif ( is_page('16') ) { $cat = array(32); } elseif ( is_page('28') ) { $cat = array(17); } else { $cat = ''; } $showposts = -1; // -1 shows all posts $do_not_show_stickies = 1; // 0 to show stickies $args=array( 'category__in' => $cat, 'showposts' => $showposts, 'caller_get_posts' => $do_not_show_stickies, ); $my_query = new WP_Query($args); ?> <?php if( $my_query->have_posts() ) : ?> <?php while ($my_query->have_posts()) : $my_query->the_post(); ?> <?php //necessary to show the tags global $wp_query; $wp_query->in_the_loop = true; ?> <div <?php post_class() ?> id="post-<?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> <small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small> <div class="entry"> <?php the_content('Read the rest of this entry »'); ?> </div> <p class="postmetadata"><?php the_tags('Tags: ', ', ', '<br />'); ?> Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?> <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p> </div> <?php endwhile; ?> <div class="navigation"> <div class="alignleft"><?php next_posts_link('« Older Entries') ?></div> <div class="alignright"><?php previous_posts_link('Newer Entries »') ?></div> </div> <?php else : ?> <h2 class="center">Not Found</h2> <p class="center">Sorry, but you are looking for something that isn't here.</p> <?php get_search_form(); ?> <?php endif; ?> </div> <?php get_sidebar(); ?> <?php get_footer(); ?>
WordPress用作CMS
你可將WordPress用於基本的內容管理。如果要這麼做的話,那麼你很可能為自己的內容建立了大量的頁面。
將某頁面用作首頁
WordPress 2.1 引入的一個選項能夠很簡便地將任意頁面設定為首頁。開啟WordPress管理介面中的 設定 > 閱讀。在首頁分類下你可以選擇將任意已釋出頁面或日誌(文章)頁面設定為首頁。預設設定是將最新部落格日誌(文章)顯示為首頁。
針對WP2.1之前的版本設定首頁的備用方法
如果不想使用內建特點將主頁設定為靜態頁面的話,你還有兩條路可以選。使用靜態首頁外掛,它可以將任意網頁設定為你網站的首頁。該外掛會修改主頁查詢,並將帶有"home(主頁)"頁面slug的頁面粘到首頁上。
當頁面作為主頁顯示出來時,如果對當前活動外觀主題存在一個名為home.php的頁面模板的話,該外掛會覆蓋頁面已定的頁面模板並代之使用home.php。如頁面按標準頁面(如http://example.com/home/)進行訪問的話,頁面的已定頁面模板將仍會使用
作為外掛的備用方法,WordPress會識別出模板目錄下的"home.php"文件,並代之index.php而使用前者來進行首頁的外觀定義。如果你的首頁不是自己的部落格的話,那麼建議無論如何也要將home.php模板應用於部落格頁面。在呼叫 主迴圈(loop)之前你可以使用 query_posts()模板標籤來呼叫任意頁面。例如:
<?php
query_posts('pagename=home');
?>
將會呼叫僅具有pagename為"home"的日誌(文章)。有關該模板標籤的實際使用詳解請見 query_posts()。
包括一個頁面
你還可能希望在站點各處包括進一些頁面。這樣一來,編輯網站元素就變得容易許多。有一個名為Improved Include Page的外掛可以輕鬆地實現此目的。
WordPress的動態"頁面"
一個網頁可以是靜態或者動態的。像那些只需要建立一次,無需根據使用者訪問而每次重新建立的標準的HTML靜態頁面,可以通過Dreamweaver來建立生成。 相對應的,像通過Wordpress建立的動態頁面,隨著每一次使用者的訪問,都會重新生成一次。 這些很多都是採用PHP程式碼,根據每一次訪問,都會生成相對應新的內容。
幾乎Wordpress中所有的東西都是動態生成的,包括頁面。 所有的你或者其他人在Wordpress中寫的內容(文章,頁面,評論,連結,分類等)都儲存在你的MySQL資料庫中。當你的站點被訪問,你的Wordpress就會從資料庫中呼叫資訊,然後通過你當前使用的WordPress模板,生成被請求的相應網頁,反饋給使用者。 因此,Wordpress資訊都是動態的,包括那些包含在頁面當中的部分。
HTML文件可以說是一個關於靜態頁面的例子,沒有用到任何的PHP程式碼,比如“關於我”的頁面,靜態頁面和動態頁面的一個很大的不同,就是在你改變你的Wordpress設定,或者模板的時候,靜態頁面不會隨之而改變。Wordpress中的頁面功能之所以被開發,就是為了解決這樣的問題。每一次你修改了內容或者樣式,頁面都會將其反映到你的部落格中。
儘管是動態的頁面,不過很多人都將他們當作是靜態的。而對於內容釋出,靜態和動態的區別在上面已經解釋清楚了。更加通俗的說,靜態就是"缺乏改變的典型"。我們很容易就可以理解,這個單詞的定義影響到了網頁本身的描述型別。也很容易理解為什麼人們認為的頁面是靜止;其他的內容為之都是動的,但 頁通常卻是保持不動的。因為頁通常被用來顯示關於您的網站的一些固定資訊。(例如,有關自己的資訊,您的網站說明)。
換句話說,一個頁面裝載著靜態資訊,但卻是動態生成的。 因此不管是"靜態"或者"動態",都可以恰當的用來描述Wordpress的頁面這一特性。但是為了避免混亂,以及頁面本身是動態的,因此文件中都不把頁面當作是靜態的。
相關內容:
本文已被標記為需要加工。歡迎您踴躍編輯它,來幫助 Codex。