我正在使用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 ); ?>
非常感谢!
约翰
最合适的回答,由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用作后备方案。