get_template_part()函数使用与解析

这两天修改了一个cms主题,自我感觉良好,中间用到了get_template_part()函数,查了些资料,记录一下。文章参考了http://pangbu.com/get_template_part/。

说明

加载一个制定的模板到另一个模板里面(不同于包含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,那么下面的代码:

1
<?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
再举一个例子:

1
2
3
4
5
6
7
8
<?php if ( have_posts() ) : ?>
	<?php twentyeleven_content_nav( 'nav-above' ); ?>
	<?php /* Start the Loop 在循环中使用以调用不同类型的文章 */ ?>
	<?php while ( have_posts() ) : the_post(); ?>
		<?php get_template_part( 'content', get_post_format() ); ?>
	<?php endwhile; ?>
............................
<?php endif; ?>

 小结

说实话,在我的主题里没用过这个函数,不喜欢太多的文件,太多的文件反而使简单的事情变得复杂。

此条目发表在WordPress教程分类目录,贴了标签。将固定链接加入收藏夹。