WordPress 模板設計的一些小技巧

在將WordPress安裝完成之後,通常您應該都會對系統預設的外觀不滿意,如果您只是想要修改外觀的話,那麼通常只要修改 CSS 即可。如果您懶得自己修改 CSS 樣式的話,在今年一月左右,WordPress 官方曾經舉辦了一場樣式表設計大賽,您可以從這個活動的網頁中,下載參賽以及得獎作品,而如果您想要在同一個網站上,使用多重樣式的話,那麼您應該也會安裝Alex King所開發的WP Style Swithcer這個外掛程式。在這篇文章中,主要在介紹怎麼樣在WordPress中,製作在首頁、分類彙整、單篇彙整以及各種不同日期彙整方式狀況下,呈現不同的頁面外觀的方式。

首先,您應該知道一些事情。有人說,WP 所使用的模板與 PHP 很像,所以在使用 WP 的時候,可能會把模板標籤與 PHP 搞混,這樣的講法有問題,那就是,在 WP 當中所使用的語法標籤不是跟 PHP 「很像」,而是根本就是 PHP 程式。另外,如果您曾經用過Movable Type這套網誌站台架設工具的話,您會知道,在 MT 系統中,會要求您分別製作不同彙整方式,分別設計首頁、單篇彙整以及分類彙整等不同的模板,使用 WP 的話,則是所有會顯示在頁面上的元素,幾乎全都放在 index.php 裡頭。

簡單來說, WP 使用 index.php 這個單一的 PHP 程式選取資料庫,我們在 index.php 裡頭傳入適當的參數,系統就會根據參數所指定的條件,挑出符合該條件的文章,然後再透過一個迴圈(也就是在 index.php 當中的start_wp 以及 foreach 當中的部份),將這些符合條件的文章一一列出。就預設的 index.php 來說,在這個迴圈之外的其他部份,都是不會改變的,所以,在 WP 當中,會以同樣的頁面外觀,呈現不同彙整方式的頁面。關於搜尋字串的使用方法,請參見 WP 的讀我檔案。

所以,如果我們想要在不同的彙整方式下,呈現不同的頁面,也就是決定在傳入那些參數的時候,顯示頁面中的某些內容。比方說,我們可以在index.php的開頭,填入以下的程式碼:


if($cat < 1 && $single == 0 && $paged < 1 && $s=='' && $year == 0) {
    // 首頁:分類為 0、單篇彙整為 0、無搜尋字串、沒有日期
    $is_index = 1;
} else if($single){
    //單篇彙整
    $is_single = 1;
} else if($cat > 1){
    //分類彙整
    $is_cat = 1;
} else if($s){
    //搜尋結果
    $is_search = 1;
}

如果參數傳入的狀況,符合的是所謂「首頁」的條件,那麼我們取的一個變數 $is_index 即為真,以此類推。那麼,在頁面的其他地方,我們便可以用這幾個變數,決定要顯示那些內容。也就是,在 MT 系統中,我們必須要分別設計各種不同的模板,在 WP 中,我們只要對一個模板稍做修改,就可以符合各種需求了。比方說,您可以在 index.php 的<div id=”content”>附近,加上一段:

if($is_index){
    echo "歡迎來到我的網站!";
} else if($is_single){
    previous_post('%', ''); //前一篇
    echo '|首頁|';
    next_post('%', ''); //後一篇
} else if($is_cat ) {
    echo cat_name($cat)."分類彙整";
} else if($is_search){
    echo "「".$s."」搜尋結果如下";
} else {
    wp_title();
}

關於可以在 index.php 當中可以使用的標籤,請參見在官方wiki上的

3 thoughts on “WordPress 模板設計的一些小技巧

  1. Pingback: 狮子山下的玻璃之城

Comments are closed.