不适用于get_header()
, 不,正如你在the source 属于get_header()
参数只需附加到文件名并在根主题目录中搜索:
$name = (string) $name;
if ( \'\' !== $name ) {
$templates[] = "header-{$name}.php";
}
$templates[] = \'header.php\';
locate_template( $templates, true );
据我所知,这里没有有用的过滤器。像
Justin Tadlock noted, 这种过滤器的缺乏已经持续了8年。
下一个最好的方法是get_template_part()
而是:
get_template_part( \'subdirectory/header\', \'myname\' );
但您也需要在子目录中使用常规标题。
这样做你唯一会错过的是get_header()
钩子不会开火。但您可以通过将其放在自定义模板的开头来解决这一问题:
do_action( \'get_header\' );
或对于自定义模板:
do_action( \'get_header\', \'myname\' );
但老实说,我不确定这个钩子的使用范围有多广,因为它不是很有用。你也许可以把它漏掉。