古怪猴子破解:主題頁面模板文件介紹

独家真实传授pt古怪猴子玩法规律 www.cfrtc.icu 頁面模板是可以應用于特定頁面或一組頁面的特定類型的模板文件。 注意:自WordPress 4.7頁面模板支持所有帖子類型。 有關如何將頁面模板設置為特定帖子類型的詳細信息,請參閱下…

頁面模板是可以應用于特定頁面或一組頁面的特定類型的模板文件。

注意:自WordPress 4.7頁面模板支持所有帖子類型。 有關如何將頁面模板設置為特定帖子類型的詳細信息,請參閱下面的示例。

由于頁面模板是特定類型的模板文件,因此頁面模板的一些區別特征如下:

  • 頁面模板用于更改頁面的外觀和感覺。

  • 頁面模板可以應用于單個頁面,頁面部分或一類頁面。

  • 頁面模板通常具有高度的特異性,針對單個頁面或一組頁面。 例如,名為page-about.php的頁面模板比模板文件page.php或index.php更具體,因為它只會影響具有“about”的頁面。

  • 如果頁面模板具有模板名稱,則編輯頁面的WordPress用戶可以控制將用于渲染頁面的模板。

用戶頁面模板

頁面模板在網頁上顯示您網站的動態內容,例如帖子,新聞更新,日歷活動,媒體文件等。您可以決定您希望您的主頁以特定的方式查看,這與您網站的其他部分完全不同 。 或者,您可能希望顯示鏈接到頁面一部分上的帖子的精選圖片,還有其他地方的最新帖子列表,并使用自定義導航。 您可以使用頁面模板來實現這些功能。

本節介紹如何構建可由用戶通過其管理屏幕選擇的頁面模板。

例如,您可以構建頁面模板:

  • full-width, 一列

  • two-column 右邊是一個側邊欄

  • two-column 左側有一個側邊欄

  • three-column 三列

模板層次結構中的頁面模板

當某人瀏覽您的網站時,WordPress將選擇用于呈現該頁面的模板。正如我們之前在模板層次結構中學到的,WordPress按以下順序查找模板文件:

  • 頁面模板 – 如果頁面具有分配的自定義模板,則WordPress會查找該文件,如果找到,則使用它。

  • page- {slug} .php – 如果沒有分配自定義模板,WordPress將查找并使用包含該頁面的塊的專門模板。

  • page- {id} .php – 如果沒有找到包含頁面小插件的專門模板,WordPress會查找并使用以該頁面的ID命名的專用模板。

  • page.php – 如果沒有找到包含頁面ID的專用模板,WordPress會查找并使用主題的默認頁面模板。

  • singular.php – 如果沒有找到page.php,WordPress將查找并使用用于單個帖子的主題模板,不考慮帖子類型。

  • index.php – 如果沒有指定或找到特定的頁面模板,WordPress將默認使用主題的索引文件來呈現頁面。

警告:還有一個名為paged.php的WordPress定義的模板。 它不用于頁面類型,而是用于顯示多個存檔頁面。

頁面模板用途和用戶控制

如果您計劃為主題制作自定義頁面模板,則應在繼續操作之前決定一些事情:

頁面模板是否用于特定頁面或任何頁面;和
您想要為模板提供哪種類型的用戶控件。
創建或編輯頁面時,用戶可以選擇具有模板名稱的每個頁面模板??梢栽凇耙趁妗?gt;“添加新建”>“屬性”>“模板”中找到可用模板列表。因此,WordPress用戶可以選擇任何具有模板名稱的頁面模板,這可能不是您的意圖。

例如,如果您想要為“關于”頁面設置一個特定的模板,可能不適合將該頁面模板命名為“關于模板”,因為它可以在全局范圍內對所有頁面(即用戶可以將其應用于任何頁)。相反,只要用戶訪問“關于”頁面,創建單一使用模板,WordPress將使用適當的模板呈現頁面。

相反,許多主題都包括選擇頁面將有多少列的能力。這些選項中的每一個都是全球可用的頁面模板。為了讓您的WordPress用戶使用此全局選項,您將需要為每個選項創建頁面模板,并為每個選項提供一個模板名稱。

判斷一個模板是全局使用還是單一使用是通過文件的命名方式來實現的,以及是否有特定的注釋。

注意:有時候,模板全局可用,即使它似乎是一個單一的用例也是合適的。 當您創建發布主題時,可能很難預測用戶對其頁面的名稱。 投資組合頁面是一個很好的例子,因為并不是每個WordPress用戶都將他們的投資組合命名為相同的東西或具有相同的頁面ID,但他們可能想要使用該模板。

頁面模板的文件組織

如主題文件組織中所述WordPress識別子文件夾頁面模板。 因此,將全局頁面模板存儲在此文件夾中是一個好主意,以幫助保持組織。

警報:專門的頁面模板文件(僅一次使用的文件)不能在子文件夾中,也不能在父主題文件夾中使用子主題。

創建全局使用的自定義頁面模板

有時你會想要一個可以在任何頁面或多個頁面全局使用的模板。 一些開發人員將使用文件名前綴對其模板進行分組,例如page_two-columns.php

警示:重要! 不要使用page-作為前綴,因為WordPress會將文件解釋為專門的模板,僅適用于您網站上的一個頁面。

有關不能使用的主題文件命名約定和文件名的信息,請參閱保留的主題文件名。

提示:創建新頁面模板的快速,安全的方法是創建一個page.php的副本,并為新文件提供不同的文件名。 這樣,您可以從其他頁面的HTML結構開始,您可以根據需要編輯新文件。

要創建一個全局模板,請在文件頂部寫入一個打開的PHP注釋,該注釋指出模板的名稱。

1

2

<span class="php"><span class="hljs-meta">&lt;?php</span> <span class="hljs-comment">/* Template Name: Example Template */</span> <span class="hljs-meta">?&gt;</span></span>

 

選擇一個名稱來描述模板在編輯頁面時WordPress用戶可以看到的名稱。 例如,您可以命名您的模板主頁,博客或投資組合。

來自TwentyFourteen主題的此示例創建一個稱為“全寬頁面”的頁面模板:

1

2

3

4

5

6

7

8

9

<span class="php"><span class="hljs-meta">&lt;?php</span>

<span class="hljs-comment">/**

* Template Name: Full Width Page

*

* <span class="hljs-doctag">@package</span> WordPress

* <span class="hljs-doctag">@subpackage</span> Twenty_Fourteen

* <span class="hljs-doctag">@since</span> Twenty Fourteen 1.0

*/</span>

</span>

basics-page-templates-03當您將文件上傳到主題文件夾(例如頁面模板)時,請轉到管理信息中心的“頁面”>“編輯”屏幕。

在右側的屬性下,您將看到模板。 用戶可以訪問全局頁面模板。

提示:選擇列表的最大寬度為250px,因此更長的名稱可能會被切斷。

為一個特定頁面創建自定義頁面模板

如“模板層次”頁面中所述,您可以為特定頁面創建模板。 要創建一個特定頁面的模板,請復制您現有的page.php文件,并用您的頁面的插槽或ID重命名:

  • page-{slug} .php

  • page-{ID} .php

例如:您的“關于”頁面有“about”和ID為6.如果您的活動主題的文件夾有一個名為page-about.php或page-6.php的文件,則WordPress將自動查找并使用該文件 呈現關于頁面。

要使用,專業頁面模板必須位于主題的文件夾(即/wp-content/themes/my-theme-name/)中。

為特定的帖子類型創建頁面模板

默認情況下,自定義頁面模板將可用于“頁面”帖子類型。

要為特定的帖子類型創建頁面模板,請在模板名稱下面添加一個需要模板支持的帖子類型的一行。

示例:

1

2

3

4

5

6

7

<span class="php"><span class="hljs-meta">&lt;?php</span>

<span class="hljs-comment">/*

Template Name: Full-width layout

Template Post Type: post, page, event

*/</span>

<span class="hljs-comment">// Page code here…</span>

</span>

警報:只有從WordPress 4.7才支持將頁面模板添加到“page”以外的帖子類型的功能

當一個帖子類型至少存在一個模板時,“Post Attributes”元框將顯示在后端,而不需要為“page-attributes”或其他任何東西添加post類型的支持。 “Post Attributes”標簽可以在注冊一個帖子類型時使用“attributes”標簽定制每個帖子類型。

向后兼容性:

假設您想公開發布支持帖子類型模板的主題。 4.7之前的WordPress版本將忽略模板帖子類型標題,并在頁面模板列表中顯示模板,即使它僅適用于常規帖子。 為了防止這種情況,您可以掛接到theme_page_templates過濾器中以將其從列表中排除。 以下是一個例子:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

/**

* Hides the custom post template for pages on WordPress 4.6<span class="hljs-built_in"> and </span>older

*

* @param<span class="hljs-built_in"> array </span>$post_templates Array of page templates. Keys are filenames, values are translated names.

* @return<span class="hljs-built_in"> array </span>Filtered<span class="hljs-built_in"> array </span>of page templates.

*/

function makewp_exclude_page_templates( $post_templates ) {

   <span class="hljs-built_in"> if </span>( version_compare( $GLOBALS['wp_version'], '4.7', '&lt;' ) ) {

        unset( $post_templates['templates/my-full-width-post-template.php'] );

    }

  

   <span class="hljs-built_in"> return </span>$post_templates;

}

  

add_filter( 'theme_page_templates', 'makewp_exclude_page_templates' );

 

這樣,您可以在WordPress 4.7及更高版本中支持自定義帖子類型模板,同時保持完全向后兼容性。

請注意,theme_page_templates實際上是一個動態主題_{$ post_type}_templates過濾器。 掛鉤名稱的動態部分$post_type是指模板支持的帖子類型。 例如。 您可以鉤入theme_product_templates來過濾產品職位類型的模板列表。

在頁面模板中使用條件標簽

您可以使用主題的page.php文件中的條件標簽來更小的頁面特定更改。 例如,下面的示例代碼將加載您的首頁的文件header-home.php,但為“關于”頁面加載另一個文件(header-about.php),然后對所有其他頁面應用默認的header.php。

1

2

3

4

5

6

7

8

<span class="hljs-selector-tag">if</span> ( is_front_page() ) :

    <span class="hljs-selector-tag">get_header</span>( <span class="hljs-string">'home'</span> );

<span class="hljs-selector-tag">elseif</span> ( is_page( <span class="hljs-string">'About'</span> ) ) :

    <span class="hljs-selector-tag">get_header</span>( <span class="hljs-string">'about'</span> );

<span class="hljs-selector-tag">else</span>:

    <span class="hljs-selector-tag">get_header</span>();

<span class="hljs-selector-tag">endif</span>;

 

您可以在此處了解有關條件標簽的更多信息。

識別頁面模板

如果您的模板使用了body_class()函數,則WordPress將在文本類標題(頁面),頁面ID(page-id- {ID})以及所使用的頁面模板的body標簽中打印類。 對于默認的page.php,生成的類名稱為page-template-default:

1

2

&lt;body <span class="hljs-keyword">class</span>=<span class="hljs-string">"page page-id-6 page-template-default"</span>&gt;

 

注意:一個專門的模板(page- {slug} .php或page- {ID} .php)也獲取了page-template-default類而不是其自己的body類。

當使用自定義頁面模板時,將打印類頁面模板以及命名特定模板的類。 例如,如果您的自定義頁面模板文件命名如下:

1

2

3

4

<span class="php"><span class="hljs-meta">&lt;?php</span>

<span class="hljs-comment">/* Template Name: My Custom Page */</span>

<span class="hljs-meta">?&gt;</span></span>

 

然后渲染HTML生成將如下所示:

1

2

&lt;body <span class="hljs-keyword">class</span>=<span class="hljs-string">"page page-id-6 page-template page-template-my-custom-page-php"</span>&gt;

 

注意應用于body標簽的page-template-my-custom-page-php類。

頁面模板方法

這些內置的WordPress功能和方法可以幫助您使用頁面模板:

  • get_page_template() 返回用于呈現頁面的頁面模板的路徑。

  • wp_get_theme()->get_page_templates() 返回可用于當前活動主題的所有自定義頁面模板(get_page_templates()是WP_Theme類的一種方法)。

  • is_page_template() 根據是否使用自定義頁面模板來呈現頁面,返回true或false。

  • get_page_template_slug() 返回自定義字段_wp_page_template的值(當該值為空時為空或“默認值”)如果頁面已分配了一個自定義模板,該模板的文件名將被存儲為名為“_wp_page_template”的自定義字段的值 wp_postmeta數據庫表)。 (自定義字段以下劃線開頭,不會顯示在編輯屏幕的自定義字段??櫓?。)

為您推薦

返回頂部