“GET_TEMPLATE_PART”分层结构可能吗?

时间:2013-09-11 作者:Johann

我正在使用get\\u template\\u part构建一个自定义Wordpress主题,以调用少量代码。我有一个名为“masthead.php”的文件,它是使用以下代码调用的:

 <?php get_template_part( \'masthead\' ); ?>
这正如预期的那样。但是,我想在我的主题文件夹中创建某种文件层次结构。例如,如果有一个名为“custom masthead.php”的文件,请先使用该文件,但如果该文件不存在,请使用“masthead.php”。

这是可以实现的吗?

EDIT

遵循@sabreuse的代码,我试图让事情变得更复杂一点。我想打印主题的文件夹名称,而不是$name变量,这样文件夹名称在进入回退之前是我的主要变量。我尝试了以下代码:

     <?php 
     $theme_name = wp_get_theme();
     get_template_part( \'masthead\', \'echo $theme_name->Template;\' ); ?>
但这似乎不起作用。也许这不可能?

EDIT

成功了:

     <?php 
     $my_theme = wp_get_theme();
     get_template_part( \'masthead\', $my_theme->Template ); ?>
非常感谢!

约翰

1 个回复
最合适的回答,由SO网友:sabreuse 整理而成

是的,您所描述的内容已经内置到get\\u template\\u part()函数中:

<?php get_template_part( $slug, $name ); ?> 
其中,“masthead”是示例中的通用模板slug,“custom”是更专业的版本。你必须把你的零件命名为slug name。php(所以,masthead-custom.php,而不是custom-masthead.php)。

请注意,您还可以将函数返回的值用于$name参数——我一直在这样做,例如:

get_template_part( \'content\', get_post_type() );
在所有情况下,如果找不到专用的模板部件,请使用刊头。php用作后备方案。

结束

相关推荐

WordPress不显示wp-Content/Themes文件夹中的主题

我会尽我所能解释这一点,但至少可以说这很奇怪。因此,两个默认主题(210和2111)出现在wp admin的外观>主题选项卡下。但是,如果我向wp内容/主题添加一个新主题(即使只是一个空文件夹),则除了当前使用的主题之外,所有主题都无法显示在“外观”>“主题”选项卡上。有人有什么想法吗?--这是在LAMP服务器上(Ubuntu 12.04)。