善用子主題,打造你的個性化 Twenty Ten 主題
Twenty Ten 子主題

善用子主題,打造你的個性化

大家可以看到本站的主題採取了 3.0 新上線的預設主題 Twenty Ten,在我使用了這個主題之後,我發覺 Twenty Ten 這個主題功能之強大,已經可以拿來作為框架主題,使用它來衍生許多出色的主題,今天要跟大家說說所謂的「 – Child-」的妙用之道。

當你學會靈活運用子主題來修改原始父主題的方法後,你可以使用任何一款你喜愛的主題來個性化成你自己專屬的主題,由於我挺喜歡 Twenty Ten 的強大、以及其採用的 WordPress 新函數,所以這裡便拿它做範本來說明。

 

根據 WordPress 官方的 Child Themes(子主題)說明,製作子主題非常簡單,你只要建立一個資料夾,在裡頭放入格式正確的 CSS 樣式檔案,這樣就成功建立了你的子主題。我們只要懂一點 HTML+CSS 的基礎知識,就可以使用這個子主題來修改樣式、結構,而不需要更動到父主題的原始檔案,如此對於父主題日後的升級便不會有所影響,並且我們還能保留自己子主題的所有樣式。

子主題的目錄結構

現在我們來看一下我們建立的子主題存放的目錄結構:

  • wp-content
    • themes (主題存放的目錄)
      • twentyten (範例父主題 Twenty Ten 的目錄)
      • twentyten-child (子主題存放的目錄,可以任意命名)
        • style.css (子主題中不可或缺的檔案,檔案名必需為 style.css

 

子主題的資料夾裡至少要包含一個 style.css 檔案,也可以包含一個完整主題的檔案;style.css 是一個子主題唯一必須的檔案。它提供的訊息讓 WordPress 辨認出子主題,並且重寫父主題中的 style.css 檔案。

底下是子主題頂部訊息的撰寫範例:

/*
 
Theme Name:    Twenty Ten Child //Twenty Ten 子主題,可任意命名
 
Theme URI:     http://example.com/ //主題的網頁
 
Description:   Child theme for the Twenty Ten theme //主題敘述
 
Author:        Your name here //你的名字,因為是你寫的主題嘛!
 
Author URI:    http://example.com/about/ //你的網址
 
Template:      twentyten //唯一必須注意的就是這個地方,一定要寫父主題的資料夾名
 
Version:       0.1.0 //你的子主題版本號
 
*/

 

好了,寫完了 CSS 樣式的頂部訊息之後,接下來你可以開始寫你的子主題樣式了,你的子主題樣式會替換原本的父主題 Twenty Ten 樣式,應該說 WordPress 根本就不會載入父主題的樣式了。所以要是我們只想稍微更改父主題的樣式和結構,而不是從頭寫一個新主題的話,那我們就必須要正確導入父主題的樣式表,再對它進行修改。接下來就跟大家說說要怎麼運用 @import 的規則來導入父主題樣式表。

/*
 
Theme Name:    Twenty Ten Child //Twenty Ten 子主題,可任意命名
 
Theme URI:     http://example.com/ //主題的網頁
 
Description:   Child theme for the Twenty Ten theme //主題敘述
 
Author:        Your name here //你的名字,因為是你寫的主題嘛!
 
Author URI:    http://example.com/about/ //你的網址
 
Template:      twentyten //唯一必須注意的就是這個地方,一定要寫父主題的資料夾名
 
Version:       0.1.0 //你的子主題版本號
 
*/
 
@import url("../twentyten/style.css"); //就是使用這個 @import 導入規則來載入父主題樣式表

 

小提醒:@import 導入規則一定要擺放在樣式表的第一順位,絕對不能在上面有其他 CSS 樣式,否則父主題的樣式表將不會被載入。

 

巧用 functions.php

除了樣式表之外,我們還可以在子主題的資料夾裡建立一個 functions.php 功能函數表,但是 functions.php 並不像 CSS 樣式表一樣會覆蓋父主題的功能,而是將新的功能加入,而且他會在父主題的 functions.php 前載入。這樣一來,子主題的 functions.php 就提供我們靈活穩定的方式來修改父主題的功能,而且就算日後父主題升級也不會有所影響,我們可以完全保留先前的修改。

那麼,只要我們想要什麼功能,就可以直接加入子主題的 functions.php 功能函數表裡,還記得我曾經寫過一系列的 WordPress 主題製作學習筆記的文章嗎?你可以看看裡面有哪些功能是你喜歡的,不要遲疑,把它加入你子主題的 functions.php 功能函數表檔案裡!

 

接下來的幾天,我會一點一滴使用子主題的方式來逐步修改 Twenty Ten 主題,如果你也打算這麼做,歡迎一起來分享交流你的心得,或是遇到問題了,也可以在此一同討論尋求解答喔!

 

 

文by覺非/終於又有動力折騰 WordPress 主題


 飛翔於文字國裏的蝴蝶,我是愛寫文的女子,不要看我的人,請你看看我的文,那裡面全是我的心.和我想對你說的話……

 StartOver.回。到。原。點 http://blogs.carrielis.com


【歷史上的今天】
相關文章外掛 for WordPress, Blogger...
本文目前有 127 則回應
  1. 你好
    你的留言版好像關閉了
    之前有請教過你一些問題
    http://www.dynamicwp.net/demo/?preview_theme=LightFolio
    這是我想要修改的主題
    我要新增子主題

    也照你所說的去新增資料夾

    Template: LightFolio
    @import url(‘../LightFolio/pagenavi-css.css’);

    只有這兩個要正確其它的應該就沒差吧 只是宣告

    可是我這樣修改後 卻無法修改到主頁的CSS

    但是為什麼我改了css卻無法更動到主頁

    • 不好意思 還有一個問題
      就是中間的三個最新文章顯示
      現在都是顯是最新的文章
      如果要自己選擇第幾篇的文章
      該要設定哪邊
      我到header.php裡面找到了
      <a href="" title="">
      但卻不知道要設定哪邊

    • 嗯,因為新主題還在測試中,有很多地方都還沒完善開放。
      關於你出現的問題,給我的資料太少,所以我不曉得你的問題出在哪裡,可能要請你描述詳細點。

      另外,你修改CSS是在子主題的CSS裡修改的嗎?父主題的CSS有正確導入嗎?

      • <a href="" title="">

        在原本的範例中有三個文章顯示的地方(可以麻煩你看一下我先前的連結)
        我想要選擇自己想要的文章
        但是不知道要改哪裡
        我想應該是這裏吧但是改來改去改不好

        至於子主題的方式
        我應該有正確導入
        也是在子主題內修改CSS
        但是我修改後在測事卻沒有改變
        還是不能在本機測試?
        或是這個範例是無法使用子主題的?
        另外請問~框架式的主題
        會比較好上手跟實用嘛?因為我也有看到妳先前的文章有提及

        父主題的其他檔案 除了FUNCTION可以複製過去 以方便之後的修改之外
        還有甚麼檔案也要複製過去呢?
        以上 謝謝~

        • 因為我沒有使用這款主題,所以我不清楚這款主題要怎麼修改,你要不要看看主題的說明文件?我記得國外的主題都會有一份詳細的說明文件。

          子主題的樣式如果有正確導入父主題,是不可能發生像你所說的狀況,所以你要不要再檢查看看是否哪裡出了錯?還有,我不清楚他這款主題是否無法使用子主題,不過照理說應該每款主題都可以自行製作子主題的。

          子主題唯一必要的檔案就是 style.css 樣式檔,其他檔案可以說都不是那麼必要,所以建議你先找出正確的問題根源,像是詳讀你範例主題的說明文件,這可能對你比較有用喔 ;)

  2. 我想问问主题颜色怎么修改啊?

  3. 弄了許久….還是很難弄得跟覺非一樣漂亮..><

    • 不會吧,Twenty Ten 應該可以說是最好改的一款主題了,其實如果你只是想要他的架構,但是修改外觀成你想要的樣式,就只需要修改 CSS 檔案,其他都不動也可以。像我這次只是小幅度的改了一下背景圖和 banner 圖片,還有調整一下色系,就又是完全不同的感覺了。

      或許你可以試著用火狐的擴充元件「Firebug」來尋找你要修改的 CSS 選擇器名稱,再做修改,這樣可能會方便點。

      • 恩…可能是對CSS操作的能力不佳,我一直要將banner的img放在Blog title下方當背景,殊不知…這樣就弄了很久搞不定.
        改改CSS顏色我會~~~~~~
        可要改其他的他會亂跑><

        • 你是說像我現在的主題一樣嗎?就是左上是 blog title、底下是 banner 圖片,這是要用 CSS 的選擇器來決定位置的,或許你可以給你的 title 和 banner 一個特殊的選擇器,再來調整一下他們的位置。像我的 blog title 是我的 logo 圖片,我給的選擇器就是 #site-title(# 代表我使用 div id),我是將 logo 圖片作為 a 的背景圖片,字型顏色色碼設為 #fff 也就是白色,這樣就完全隱形,然後再把 display 設成 block 來固定。

          如果你對 CSS 的運用還不太熟悉,建議線上看看 w3school 在線教程,這樣對主題版面修改會有比較深的瞭解。

  4. 感謝的回應,日後會多向您學習!(沒想到我快34歲才接觸這個)板型沒搞好,跟本不感匯入文章~~奔淚。

    • 不用客氣。

      學習永遠不嫌晚,不用怕自己年紀大,我下個月就滿三十四歲了,所以年紀大沒什麼,只要你肯學就一定不會遲。

      內容才是王道啊!自己架站開部落格,最主要的目的不就是寫文嗎?版面不一定要修整得多華麗,主要是內容呀!

      我之前也很注重主題外觀,後來就覺得內容還是比較重要的,我更新也沒那麼勤勞,難得更新一次就會特別用心寫,希望自己這個小天地裡,存留的都是好內容 ;)

      不好意思,我多嘴嘮叨一番,都是我自己的經驗談 :D

      • 感謝安慰,自2011年4月13日起研究至今學到很多東西,也瞭解到wordpress不像其他部落格好上手,小弟對自己目前的樣式只有一個要求,抬頭及側邊想藍底白字,另外不知高手美女小姊對於sidebar.php裡內容有無淺談的文章參考,感謝您撥沈抽空的回應,奔淚~~。

        • 建議你根據你自己主題的樣式表裡面的選擇器去修改你的樣式,如果要學 CSS 建議去買本書來看,畢竟我也不是專門的老師,你可以 Google 一下有關 CSS 學習的資訊,相信配合教學資訊和自己動手實作,這樣會更清楚瞭解。

          另外,如果你跟我一樣使用 Firefox 瀏覽器的話,建議安裝 Firebug 這個擴充元件,可以很快速得知頁面上的樣式表選擇器,一樣,使用方法請自行 Google 囉 ;)

1 Trackbacks/Pingbacks