Codex

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

zh-tw:網誌分頁

你可以在WordPress中撰寫日誌或是網誌分頁。當你撰寫一般的部落格文章時,就是撰寫日誌。這些日誌會按逆時間順序排列在部落格首頁上。而網誌分頁則是如"關於板主", "聯繫板主"這樣的內容,它們是不受時間規則影響的,其內容一般很少改變。你可以使用網誌分頁來組織和管理任意數量的內容。

常見網誌分頁包括的內容還有:版權,相關法律資訊,轉載許可,公司資訊及可訪性聲明。(順帶提一下,最好建立一個介紹網誌分頁和提供聯繫方式的網誌分頁 -- 可以參看一下Lorelle給出的相關建議。)

一般說來,網誌分頁跟日誌很相似,它們都有標題和內容,並且通過使用外觀範本使外觀風格保持一致;但在這一方面,網誌分頁卻具有若干區別于日誌的重要特點。

“果殼”中的網誌分頁

網誌分頁可以:

網誌分頁不能:

  • 網誌分頁不是日誌,也不是大片文章的節選。它們不會像日誌那樣周而復始地出現在部落格主頁上。(注:你可以使用[Inline Posts外掛程式]在網誌分頁中包括進日誌。)
  • 網誌分頁無法與分類關聯,也無法被指派標籤。網誌分頁的組織結構僅由各層的相互作用而產生,與標籤或分類並無干係。
  • 網誌分頁不是檔。它們與日誌一樣是被存儲在資料庫中的。
  • 雖然你可以在網誌分頁範本中加入範本標籤和PHP代碼,但卻無法將它們加入網誌分頁內容中並企圖讓它們運作。(注:你可以使用如Exec-PHPRunPHP這樣的外掛程式來達到此目的。)

創建網誌分頁

如果你具有足夠的管理許可權,就可以登入WordPress來新建文章,並以此新建一個網誌分頁。選擇[管理面板]>[網誌分頁]>[網誌分頁新建]進行新的網誌分頁的創建。

修改網誌分頁的URL(或"Slug")

自2.5版以來,網誌分頁URL的修改變得不那麼直觀了。如果你啟用了永久連結並選擇了Day and Name選項(點擊設定標籤,然後點擊永久連結子標籤),那麼當你輸入日誌主體時,永久連結就會自動顯示在日誌標題之下。

但如果你選擇了永久連結相關的其他選項,或根本沒有啟用永久連結的話,就需要按照如下步驟來編輯網誌分頁URL了:

  1. 通過撰寫 > 網誌分頁來新建一個網誌分頁。
  2. 網誌分頁內容完成後點擊發佈按鈕。
  3. 打開管理 > 網誌分頁
  4. 點擊網誌分頁旁的編輯
  5. 點擊編輯連結來修改出現在標題之下的永久連結。

也就是說,如果你沒有啟用正確的永久連結選項,就得在網誌分頁發佈之後才能對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 - 忽略網誌分頁內容,而是按月或按主題(按分類)顯示一系列的歸檔
  • links.php - 忽略網誌分頁內容,而使用 wp_list_bookmarks()顯示連結

使用何種範本顯示某特定網誌分頁?

WordPress會在當前活動外觀主題中查找若干範本檔。首個查找結果將會被用來顯示給定網誌分頁。WordPress會按如下順序查找檔:

  1. 網誌分頁所選用的"網誌分頁範本"
  2. page.php
  3. index.php

創建自己的網誌分頁範本

定義各網誌分頁範本的檔可在[Using Themes|外觀主題]目錄下找到。要為某網誌分頁新建一個自訂網誌分頁範本的話,你需要新建一個檔。現在我們將這個網誌分頁範本命名為snarfer.php。在snarfer.php檔頂部輸入如下內容:

<?php
/*
Template Name: Snarfer
*/
?>

以上代碼定義snarfer.php文件為"Snarfer"範本。"Snarfer"這個網誌分頁範本名稱可以任意修改。該範本名稱將出現在外觀主題編輯器中,並作為編輯該檔的連結。

該檔可被任意命名,副檔名為.php(參見你不應使用的檔案名保留(不可用)的外觀主題檔案名;這些檔案名是WordPress保留下來以備特殊之用的檔案名)。

以上五行代碼之後的內容可就是你自己的事啦。剩下的代碼則是控制網誌分頁使用Snafer網誌分頁範本的顯示方式。你可以查看一下範本標籤中可用在這裡的WordPress各類範本函數的介紹。你可以將其他範本(可以是page.phpindex.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的網誌分頁這一特性。但是為了避免混亂,以及網誌分頁本身是動態的,因此文檔中都不把網誌分頁當作是靜態的。

譯者信息

本文檔由ThemeDaily翻譯
譯者部落格:Free Wordpress Themes
E-Mail:admin@themedaily.com

相關內容: