頁面模板是一種特定類型的模板文件,可應(yīng)用于特定頁面或頁面組。
注意:從 4.7 開始,頁面模板支持所有帖子類型。要了解如何將頁面模板設(shè)置為特定的帖子類型,請(qǐng)參閱下面的示例。
由于頁面模板是一種特定類型的模板文件,因此頁面模板的一些區(qū)別特征如下:
頁面模板的作用
頁面模板在頁面上顯示網(wǎng)站的動(dòng)態(tài)內(nèi)容,如文章、新聞更新、日歷事件、媒體文件等。您可以決定以特定方式顯示主頁,這與網(wǎng)站的其余部分。或者,您可能希望顯示鏈接到頁面部分的特色圖像wordpress建設(shè)的是模板網(wǎng)站嗎,在其他地方有最近文章的列表,并使用自定義導(dǎo)航。您可以將頁面模板用于這些目的。
本節(jié)向您展示如何構(gòu)建用戶可以通過其管理界面選擇的頁面模板。
例如,您可以根據(jù)以下要求構(gòu)建頁面模板:
模板層次結(jié)構(gòu)中的頁面模板
當(dāng)有人瀏覽您的網(wǎng)站時(shí),選擇用于呈現(xiàn)此頁面的模板。正如我們之前在模板層次結(jié)構(gòu)中所了解的,模板文件按以下順序查找:
頁面模板——如果頁面有一個(gè)自定義模板,那么在使用它時(shí)就會(huì)被分配。 page-{slug}.php - 如果沒有指定自定義模板,將查找并使用包含頁面別名的專業(yè)模板。 page-{id}.php - 如果沒有找到包含頁面別名的專業(yè)模板,則會(huì)查找并使用以頁面id命名的專業(yè)模板。 page.php - 如果找不到包含頁面 ID 的專用模板wordpress網(wǎng)站制作,將查找并使用主題的默認(rèn)頁面模板。 .php - 如果沒有找到 page.php,則無論文章類型如何,都將查找并使用單個(gè)文章的主題模板。 index.php - 如果未分配或找到特定頁面模板,則默認(rèn)使用主題的索引文件來呈現(xiàn)頁面。
還有一個(gè)名為 paged.php 的已定義模板。它不是用于頁面帖子類型,而是用于顯示存檔的多個(gè)頁面。
頁面模板的目的和用戶控制
如果您打算為您的主題制作自定義頁面模板,則應(yīng)在繼續(xù)之前確定以下幾點(diǎn):
用戶可以在創(chuàng)建或編輯頁面時(shí)選擇每個(gè)具有模板名稱的頁面模板??梢栽陧撁?> 新頁面 > 頁面屬性 > 模板中找到可用模板的列表。所以用戶可以選擇任何帶有模板名稱的頁面模板,這不是你的本意。
例如,如果您想為“關(guān)于”頁面使用特定模板,則將頁面模板命名為“關(guān)于模板”是不合適的,因?yàn)樗谒许撁嫔先挚捎茫从脩艨梢赃m用于任何頁面)。相反,創(chuàng)建一個(gè)一次性使用的模板,當(dāng)用戶訪問“關(guān)于”頁面時(shí),該模板將使用適當(dāng)?shù)哪0宄尸F(xiàn)。
相比之下,許多主題都可以選擇頁面的列數(shù)。每個(gè)選項(xiàng)都是一個(gè)全局可用的頁面模板。為了給您的用戶提供這個(gè)全局選項(xiàng),您需要為每個(gè)選項(xiàng)創(chuàng)建頁面模板并為每個(gè)模板命名。
通過文件的命名方式以及它們是否有特定的注釋來確定模板是供全球使用還是個(gè)人使用。

有時(shí)它可以使模板在全球范圍內(nèi)可用,即使它看起來只有一個(gè)目的。在開發(fā)主題時(shí),很難預(yù)測(cè)用戶會(huì)給他們的頁面命名。作品集頁面就是一個(gè)很好的例子,因?yàn)椴⒎敲總€(gè)用戶的作品集名稱都相同或頁面 ID 相同,但他們可能希望使用該模板。
組織頁面模板文件
如組織主題文件中所述,可識(shí)別子文件夾中的頁面模板。因此,最好將全局頁面模板存儲(chǔ)在此文件夾中,以使它們看起來井井有條。
需要注意的是,那些特定的(一次性使用,如包含id或別名)的頁面模板文件不能放在子文件夾中,如果要在子主題中使用,也應(yīng)該放在父主題中根目錄。
創(chuàng)建供全球使用的頁面模板
有時(shí)您需要一個(gè)可以在任何頁面或多個(gè)頁面上全局使用的模板。一些開發(fā)人員會(huì)使用文件名前綴對(duì)他們的模板進(jìn)行分組,例如-.php
注意:不要使用 page- 作為前綴,否則文件將被解釋為專用模板,意味著僅在頁面的網(wǎng)站上可用。
有關(guān)不可用的主題文件命名約定和文件名的信息,請(qǐng)參閱。
創(chuàng)建新頁面模板的一種快速且安全的方法是復(fù)制 page.php 并將其命名為其他名稱。這樣,您可以從其他頁面的 HTML 結(jié)構(gòu)開始,并根據(jù)需要編輯這個(gè)新文件。
要?jiǎng)?chuàng)建一個(gè)全局模板,請(qǐng)?jiān)谖募敳刻砑右粋€(gè) PHP 注釋,指明模板的名稱。
最好給模板起一個(gè)有意義的名稱,因?yàn)橛脩粼诰庉嬳撁鏁r(shí)會(huì)看到這個(gè)名稱。例如,您可以將模板命名為 、 Blog 或 .
下面是一個(gè)主題的示例,它創(chuàng)建了一個(gè)名為 Full Width Page 的頁面模板:
*
* @package WordPress
* @subpackage Twenty_Fourteen
* @since Twenty Fourteen 1.0
*/
@ >
將此頁面模板文件上傳到主題文件夾(如page-子文件夾)后,訪問后臺(tái)任意頁面的編輯界面,在頁面屬性-模板中也可以看到您創(chuàng)建的模板。用戶可以在此處訪問您的全局頁面模板。
注意:模板列表為 250px 寬,如果您的模板名稱太長(zhǎng)wordpress做網(wǎng)站,可能會(huì)被裁剪,無法完全顯示。
為特定頁面創(chuàng)建頁面模板
如模板層次結(jié)構(gòu)頁面中所述,您可以為特定頁面創(chuàng)建模板。要為特定頁面創(chuàng)建模板,請(qǐng)復(fù)制現(xiàn)有 page.php 文件并使用頁面的 slug 別名或 ID 重命名該文件:
頁面-{slug}.-{ID}。 php
示例:您的“關(guān)于”頁面上有一個(gè) ID 為 6 的“關(guān)于”別名。如果活動(dòng)文件夾中存在名為 page-about.php 或 page-6.php 的文件主題,它將被自動(dòng)找到并用于呈現(xiàn)關(guān)于頁面。
這個(gè)特定的頁面模板必須在主題的文件夾中(即/wp-//my-theme-name/)wordpress建設(shè)的是模板網(wǎng)站嗎,不能放在子文件夾中。
為特定帖子類型創(chuàng)建頁面模板
默認(rèn)情況下,“頁面”帖子類型可以使用自定義頁面模板。
要為特定文章類型創(chuàng)建頁面模板,只需在模板名稱下方添加一行,其中包含您希望模板支持的文章類型。例如:

注意:只有 4.7 及以上版本支持添加頁面模板到“頁面”以外的文章附加文章類型為
如果文章類型至少有一個(gè)模板,“文章屬性”元數(shù)據(jù)框?qū)@示在后臺(tái),而不添加對(duì)“頁面-”或其他交易對(duì)手的文章類型支持。注冊(cè)文章類型時(shí),您可以使用“”選項(xiàng)卡為每個(gè)文章類型自定義“文章屬性”選項(xiàng)卡。
向后兼容性:
假設(shè)您要公開發(fā)布支持文章類型模板的主題。 4. 7 之前的版本將忽略帖子類型標(biāo)題并在頁面模板列表中顯示該模板,即使它僅適用于其他帖子類型。為了防止這種情況,您可以包含一個(gè)過濾器以將其從列表中排除。這是一個(gè)例子:
/**
* 為 WordPress 4.6 及以下版本隱藏自定義文章類型的頁面模板
*
* @param array $post_templates Array of page templates. Keys are filenames, values are translated names.
* @return array Filtered array of page templates.
*/

function makewp_exclude_page_templates( $post_templates ) {
if ( version_compare( $GLOBALS['wp_version'], '4.7', '<' ) ) {
unset( $post_templates['templates/my-full-width-post-template.php'] );
}
return $post_templates;
}
add_filter( 'theme_page_templates', 'makewp_exclude_page_templates' );
這樣您可以在 4.7 及更高版本中支持自定義帖子類型模板,同時(shí)保持向后兼容性。
請(qǐng)注意,這實(shí)際上是一個(gè)動(dòng)態(tài) {$} 過濾器。鉤子名稱的 $ 部分是指模板支持的文章類型。例如,您可以使用 tes 過濾產(chǎn)品發(fā)布類型的模板列表。
在頁面模板中使用條件標(biāo)簽
您可以在 page.php 文件中使用“條件標(biāo)簽”來進(jìn)行較小的、特定于頁面的修改。例如,下面的示例代碼為您的主頁加載 -home.php 文件,但為“關(guān)于”頁面加載另一個(gè)文件 -about.php,然后為所有其他頁面應(yīng)用默認(rèn)的 .php 文件。
if ( is_front_page() ) :
get_header( 'home' );
elseif ( is_page( 'About' ) ) :
get_header( 'about' );
else:

get_header();
endif;
您可以在此處了解有關(guān)條件標(biāo)簽的更多信息。
識(shí)別頁面模板
如果你的模板使用了()函數(shù),它會(huì)添加類名(page)、page ID(page-id-{ID})和使用的page模板文件名。對(duì)于默認(rèn)的page.php,生成的類名為page--:
一個(gè)特定的模板(page-{slug}.php 或 page-{ID}.php),也生成了 page--class 而不是它自己的 body 類。
當(dāng)使用自定義頁面模板時(shí),page- 會(huì)輸出一個(gè)基于特定模板名稱的類名。例如,如果您的自定義頁面模板文件命名如下:
然后生成的渲染 HTML 將如下所示:
請(qǐng)注意,類名 page--my--page-php 應(yīng)用于 body 標(biāo)簽。
頁面模板函數(shù)
這些內(nèi)置函數(shù)和方法可以幫助您使用頁面模板:
這篇文章對(duì)您有用嗎?
文章來自互聯(lián)網(wǎng),侵權(quán)請(qǐng)聯(lián)系刪除,文章闡述觀點(diǎn)來自文章出處,并不代表本站觀點(diǎn)。
www.bjcthy.com