有時(shí)您想在您的網(wǎng)站上顯示一些特殊形式的頁面,您需要使用自定義頁面模板。本文以內(nèi)置的 (2011) 和 (2010) 主題為例進(jìn)行詳細(xì)介紹。與官方文檔不同,本文重點(diǎn)介紹默認(rèn)主題靜態(tài)頁面模板的內(nèi)部結(jié)構(gòu),以方便我們?cè)诙ㄖ频臅r(shí)候進(jìn)行修改。
文章先介紹了主題的大體結(jié)構(gòu),然后以內(nèi)置主題,主要是2011主題為例,說明頁面模板的構(gòu)成,最后給出三個(gè)制作自定義頁面模板的例子.
1.主題的大致結(jié)構(gòu)
以(2011)的主題為例,文件夾下的文件組織結(jié)構(gòu)如下。//號(hào)后面的內(nèi)容是我的評(píng)論描述。相信即使是剛接觸過的朋友開始閱讀這篇文章你也可以對(duì)主題有更全面的了解,修改主題也會(huì)更順暢。
在閱讀下面的解釋之前,你需要了解一個(gè)情況,那就是php代碼的復(fù)用。我們看到的網(wǎng)頁不一定是由單個(gè)php文件生成的,而是可以由一個(gè)主文件調(diào)用多個(gè)其他文件組成。這樣便于代碼復(fù)用:比如我想在每個(gè)網(wǎng)頁上顯示相同的段落,不需要在不同的網(wǎng)頁對(duì)應(yīng)的不同php文件中重復(fù)這一段,而只需要?jiǎng)?chuàng)建一個(gè)單獨(dú)的php文件即可生成這句話,然后在主文件中需要的地方引用這個(gè)文件。
有一個(gè)要求,所有主題的頁面模板(主要的php文件,可以調(diào)用形成網(wǎng)頁),或者它調(diào)用的模板wordpress網(wǎng)站制作,必須在開頭附近包含()(通常放在. php 文件,由 () 調(diào)用),和 () 接近結(jié)尾(通常放在 .php 文件中,由 () 調(diào)用),因?yàn)樵谶@些地方需要處理一些數(shù)據(jù)。所以如果我們?cè)谝粋€(gè)主題中打開一個(gè)文件wordpress網(wǎng)站建設(shè),發(fā)現(xiàn)開頭有(),結(jié)尾有(),那么它一定是一個(gè)主php文件,用于顯示某種/某種類型的網(wǎng)頁。
為了避免混淆,下面將單獨(dú)的php文件統(tǒng)稱為模板。如果是主文件,也稱為頁面(或頁面模板),我們?yōu)g覽的稱為網(wǎng)頁。至于php文件的調(diào)用,可以通過自己寫的函數(shù)來實(shí)現(xiàn),也可以直接使用php的or方法,涉及到php編程,這里不再介紹。
twentyelven 文件夾內(nèi)部文件組織結(jié)構(gòu)圖:
// 先介紹重要的
│ index.php // 主題的引導(dǎo)文件,也是默認(rèn)的首頁的模板
│ header.php
// 這個(gè)文件包含 HTML 的 部分(不顯示在網(wǎng)頁上,但是通過查看網(wǎng)頁源文件就能看到), // 同時(shí)還可能包含一部分正文(HTML的 標(biāo)簽內(nèi)的東西); // get_header() 就是調(diào)用它的。 // 比如水景一頁下面整個(gè)淺灰色色背景的部分都是在這個(gè)文件中處理的
│ footer.php
// 用于顯示頁面下面的內(nèi)容,包含 標(biāo)簽 // 比如水景一頁上面整個(gè)黑色背景的部分都是在這個(gè)文件中處理的
// 下面 9 個(gè)文件都是頁面模板,都調(diào)用了 get_header() 和 get_footer() // 并且一般都會(huì)調(diào)用 comments.php 以處理評(píng)論列表和評(píng)論框
│ 404.php // 用于顯示自定義 404 錯(cuò)誤網(wǎng)頁的頁面模板
│ archive.php // 用于顯示文章存檔網(wǎng)頁的頁面模板,比如按日期存檔等頁面
│ author.php // 作者文章存檔頁面模板(顯示該作者所有文章列表網(wǎng)頁)
│ category.php // 分類頁面模板
│ image.php // 用于顯示圖片附件,頁面模板
│ page.php
// 用于顯示靜態(tài)頁面(page)的頁面模板,通過 get_template_part( 'content', 'page' ) 調(diào)用了 content-page.php
│ tag.php // 標(biāo)簽頁面模板
│ single.php // 單一文章(post)頁面,這是標(biāo)準(zhǔn)形式的 post,調(diào)用了 content-single.php
│ showcase.php // 特色文章頁面模板;用這個(gè)模板來做首頁其實(shí)挺不錯(cuò)的
// 下面這一組 11 個(gè)以 content 開頭的文件,都只是某個(gè)頁面的一部分,類似于上面的 comments.php 文件 // Twenty Ten 主題中用的是 loop 開頭
│ content-aside.php
│ content-featured.php

│ content-gallery.php
│ content-image.php
│ content-intro.php
│ content-link.php
│ content-page.php
│ content-quote.php
│ content-single.php
│ content-status.php
│ content.php
// 以上 11 個(gè)文件是用來處理網(wǎng)頁主體部分的; // 包含正文內(nèi)容,包括文章(post)、靜態(tài)頁面(page),也就是我們通常所說的文章內(nèi)容; // 2011 主題內(nèi)置了幾種文章形式(post format),可針對(duì)不同的文章形式使用不同的模板; // 當(dāng)然如果你樂意,使用同一個(gè)模板也沒有問題
│ comments.php
// 評(píng)論模板;這個(gè)不是一個(gè)單獨(dú)的頁面,需要在別的頁面中調(diào)用此模板 // 使用 comments_template( '', true ) 來調(diào)用
│ searchform.php // 搜索框模板
│ search.php // “搜索”頁面模板,還會(huì)調(diào)用 searchform.php 來顯示搜索框,這是個(gè)頁面模板
│ sidebar-footer.php
│ sidebar-page.php
│ sidebar.php // get_sidebar() 會(huì)調(diào)用此文件
// 這三個(gè)是用于顯示網(wǎng)頁上 WordPress 邊欄的模板 // sidebar.php 會(huì)根據(jù)情況調(diào)用 sidebar-page.php 或者 sidebar-footer.php 或者同時(shí)調(diào)用兩個(gè)
│ functions.php
// 主題自定義的一些功能函數(shù),如果有的話可以覆蓋 WordPress 內(nèi)建函數(shù)
│ rtl.css
│ style.css
// 這兩個(gè)是主題的樣式表文件,其中 rtl 只用于顯示從右到左寫法的語言
│ editor-style-rtl.css
│ editor-style.css
// 這兩個(gè)是主題提供給后臺(tái)的編輯器樣式文件,一般不修改
│ screenshot.jpg

│ screenshot.png
// 這兩個(gè)是主題的縮略圖
│ readme.txt // 主題的說明文檔
│ license.txt // 主題的許可證內(nèi)容
├─colors // 文件夾,包含選擇黑色風(fēng)格時(shí)需要調(diào)用的樣式文件(省略其下的文件)
│
├─images // 文件夾,包含主題網(wǎng)頁上用到的圖片(省略其下的文件)
│ │
│ └─headers // 文件夾,包含頂部背景圖片(省略其下的文件)
│
├─inc // 文件夾一些內(nèi)部函數(shù),基本不會(huì)自己修改(省略其下的文件)
│ │
│ └─images // 文件夾,包含一些圖片(省略其下的文件)
│
├─js // 文件夾,包含主題自己的 JavaScript 文件(省略其下的文件)
│
└─languages // 文件夾,包含語言文件的文件夾(省略其下的文件)
2010 年的主題離它不遠(yuǎn),不再冗長(zhǎng)。
2. 頁面模板結(jié)構(gòu)
我們來介紹一個(gè)完整的頁面模板,仍然以2011主題為例。
根據(jù)前面的描述,我們已經(jīng)知道一個(gè)完整的頁面模板其實(shí)就是page.php,但是它會(huì)調(diào)用.php形成頁眉,-page.php處理靜態(tài)頁面文章,.php形成側(cè)邊欄,最后 .php 形成頁腳。
其中.php、.php、.php全站一致,我們一般不做改動(dòng)wordpress頁面模板制作,所以剩下的自定義部分就是page.php + -page.php。
結(jié)合page.php源碼,其中紅色字體是我的注釋。這是直接來自 2011 主題的源代碼:
* Please note that this is the WordPress construct of pages
* and that other 'pages' on your WordPress site will use a
* different template.
*
* @package WordPress
* @subpackage Twenty_Eleven
* @since Twenty Eleven 1.0
*/上面全都是文件中的注釋,php 標(biāo)簽內(nèi)的注釋一般用 /* */ 包圍,單行可以直接在注釋前前用 // 如果要自定義頁面模板,需要在這里添加下面的代碼(綠色字體),TemplateName 就是模板名稱了。 我們?cè)诰庉嬳撁娴臅r(shí)候,通過旁邊的下拉菜單選擇模板的時(shí)候看到的就是這個(gè)名字。
這兩行是 HTML 結(jié)構(gòu)標(biāo)簽
開始處理內(nèi)容
調(diào)用 content-page.php,實(shí)際上可以將 content-page.php 里的內(nèi)容全部復(fù)制過來替換掉這一行
調(diào)用評(píng)論 comments.php
內(nèi)容處理結(jié)束
封閉 id="content" 那個(gè) div
封閉 id="primary" 那個(gè) div
可以在這里加上 那么頁面就有了邊欄了,不過就需要調(diào)整樣式了(style.css)
3.自定義頁面模板的三種方式
其實(shí)有4種,最后的C也可以像前面的A和B一樣分
A.簡(jiǎn)單頁面模板 - 包含頁面內(nèi)容

如果我們只是想簡(jiǎn)單的在頁面上添加一些其他的東西,比如放一張地圖什么的,或者把新浪微博嵌入到頁面中,同時(shí)保持頁面上其他的東西不變,我們可以直接添加自己的隨便挑插入代碼或內(nèi)容的適當(dāng)位置。
看了上面的評(píng)論,應(yīng)該很容易找到你想放東西的地方吧?比如我的Buzz頁面(頁面評(píng)論被我關(guān)閉了,所以看不到評(píng)論和評(píng)論框),現(xiàn)在在
和
中間插入新浪微博的小工具代碼
(新浪微博-->頂部工具欄上的賬號(hào)-->我的工具)。
B.簡(jiǎn)單頁面模板 - 無頁面內(nèi)容
很多時(shí)候,我們自定義的頁面模板中并沒有用到頁面內(nèi)容,也就是說,我們新建一個(gè)模板,然后在編輯頁面內(nèi)容的時(shí)候?qū)?nèi)容留空。我們只希望它顯示適用于該頁面的自定義內(nèi)容,例如 單頁網(wǎng)站上的鏈接和購(gòu)物通道頁面。這樣,您就可以將上面所有藍(lán)色字體標(biāo)記的代碼替換為您自己的自定義內(nèi)容。
C.復(fù)雜的頁面模板
但是,許多主題對(duì)帖子和靜態(tài)頁面 (style.css) 的內(nèi)容進(jìn)行了樣式設(shè)置。為了使自定義內(nèi)容樣式與站點(diǎn)上其他頁面的樣式保持一致wordpress頁面模板制作,我們需要使用 -page.php 文件中的代碼。復(fù)制里面的代碼(不加注釋),替換成上面的代碼
這行代碼構(gòu)成:

這兩行是 HTML 結(jié)構(gòu)標(biāo)簽
開始處理內(nèi)容
>
這 3 行是內(nèi)容標(biāo)題,不想要就刪除
這 1 行是內(nèi)容,不想要就刪除
'
' . __( 'Pages:', 'twentyeleven' ) . '', 'after' => '
' ) ); ?> 這 1 行是……我也不知道是什么東西,不想要就刪除
這 3 行是那個(gè)“編輯”按鈕,不想要就刪除
調(diào)用評(píng)論 comments.php
內(nèi)容處理結(jié)束
封閉 id="content" 那個(gè) div
封閉 id="primary" 那個(gè) div
可以在這里加上 那么頁面就有了邊欄了,不過就需要調(diào)整樣式了(style.css)
然后我們可以將代碼放入
在這條線之前或之后,自行調(diào)整。 ?
這篇文章發(fā)表在 頁面上。固定鏈接:。轉(zhuǎn)載請(qǐng)保留此信息及相關(guān)鏈接。
文章來自互聯(lián)網(wǎng),侵權(quán)請(qǐng)聯(lián)系刪除,文章闡述觀點(diǎn)來自文章出處,并不代表本站觀點(diǎn)。
www.bjcthy.com