这两天修改了一个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; ?> |
小结
说实话,在我的主题里没用过这个函数,不喜欢太多的文件,太多的文件反而使简单的事情变得复杂。