WordPress get_template_part() 函数

Twenty Eleven 中 实例如下:

Twenty Eleven index.php 文件  行:21 <?phpif( have_posts()):?>
<?php twentyeleven_content_nav('nav-above');?>
<?php/* Start the Loop 在循环中使用以调用不同类型的文章 */?>
<?phpwhile( have_posts()): the_post();?>
<?php get_template_part('content', get_post_format());?>
<?phpendwhile;?> 
............................ 
<?phpendif;?>

描述:
加载一个制定的模板到另一个模板里面(不同于包含header,sidebar,footer).
使得一个主题使用子模板来实现代码段重用变得简单

用于在模板中包含指定的模板文件,只需用指定参数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()函数将按下面优先级包含文件

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) ?>

如果你不明白可以参考官方 API : get_template_part

相关文章