溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

WordPress中加載模板的get_template_part函數怎么用

發(fā)布時間:2021-09-02 09:49:55 來源:億速云 閱讀:140 作者:小新 欄目:開發(fā)技術

這篇文章給大家分享的是有關WordPress中加載模板的get_template_part函數怎么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

wordpress 3.0 以后就開始便有了get_template_part() 這個函數 ,應該是為文章呈現(xiàn)形式提供更為多樣化的選擇而給出的新功能。

Twenty Eleven 中 實例如下:

Twenty Eleven index.php 文件
 行:21

<?php if ( have_posts() ) : ?>
 <?php twentyeleven_content_nav( 'nav-above' ); ?>
 <?php /* Start the Loop 在循環(huán)中使用以調用不同類型的文章 */ ?>
 <?php while ( have_posts() ) : the_post(); ?>
 <?php get_template_part( 'content', get_post_format() ); ?>
 <?php endwhile; ?>
............................
<?php endif; ?>

描述:
加載一個制定的模板到另一個模板里面(不同于包含header,sidebar,footer).
使得一個主題使用子模板來實現(xiàn)代碼段重用變得簡單

用于在模板中包含指定的模板文件,只需用指定參數slug和name就可以包含文件{slug}-{name}.php,最重要的功能是如果沒有這個文件就包含沒有{name}的.php文件文件

使用方法:

<?php get_template_part( $slug, $name ) ?>

參數:

  • $slug (必須) 通用的模板名

  • $name (可選) 指定的模板名

示例:

使用 loop.php 在子主題里面

假設主題文件夾wp-content/themes下父主題是twentyten子主題twentytenchild,那么下面的代碼:

<?php get_template_part( 'loop', 'index' ); ?>

php 的require()函數將按下面優(yōu)先級包含文件

1. wp-content/themes/twentytenchild/loop-index.php
2. wp-content/themes/twentytenchild/loop.php
3. wp-content/themes/twentyten/loop-index.php
4. wp-content/themes/twentyten/loop.php

導航(這個例子很爛,但卻是另一種使用思路)
使用通用的nav.php文件給主題添加導航條:

<?php get_template_part( 'nav' );      // Navigation bar (nav.php) ?>
<?php get_template_part( 'nav', '2' );   // Navigation bar #2 (nav-2.php) ?>
<?php get_template_part( 'nav', 'single' ); // Navigation bar to use in single pages (nav-single.php) ?>

get_template_part() 的鉤子詳解
因為在官方主題(Twenty Eleven)中 get_template_part() 函數被大量使用,所以就目前來看,該函數應該算是比較熱門的一個函數了,之前有寫過一篇文章講述該函數的具體使用方法,在這里也就不便再贅述,本文主要針對該函數的 add_action 中的 hook $tag 值進行探討,因為,WP hook 中林林總總有那么些函數在$tag 值中比較讓人費解。

與普通hook的區(qū)別
普通的hook的$tag 是一個固定值,而 get_template_part() 確是一個可變值,好吧先不說,wp這么做給我們實現(xiàn)一個簡單功能帶來多少麻煩,但如此設置確實給多樣化的主題實現(xiàn)帶來了不少方便之處。
實現(xiàn)這一原理的源代碼如下,截取自 WordPress 源程序。

 function get_template_part( $slug, $name = null ) {
//$tag = "get_template_part_{$slug}" 
//也就是,get_template_part_+你當時設置的$slug值
 do_action( "get_template_part_{$slug}", $slug, $name );
 $templates = array();
 if ( isset($name) )
  $templates[] = "{$slug}-{$name}.php";
  $templates[] = "{$slug}.php";
  locate_template($templates, true, false);
}

實例
像上面那樣說,可能也許基本上有點看不明白,好吧給點實例

//復習一下get_template_part($slug, $name)的用法,
//如果你在主題里這樣
get_template_part( 'index' , 'photo');
//那么 WP 會去找主題根目錄下 index-photo.php 文件
 
//那么我們想掛一個函數的話就得像如下
function addFunction ($slug, $name){
echo $slug;
}
add_action("get_template_part_index","addFunction",10,2);

感謝各位的閱讀!關于“WordPress中加載模板的get_template_part函數怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI