是否可以将头文件-{YOUR_CUSTOM_TEMPLATE}.php放入子目录?

时间:2018-03-27 作者:jkresse

我刚刚了解到,可以创建不同的标题。通过创建一个新文件并将其命名为:header myname,可以在主题中创建php文件。php。

要调用,我将使用如下标题模板标记:

get_header( \'myname\' );
但是那样我就必须把我的文件放在我的主题的主目录中,对吗?

因此,我的问题是:有没有办法将自定义头文件放入子目录,如果有,如何使用get\\u header()标记声明其位置?

2 个回复
SO网友:Jacob Peattie

不适用于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\' );
但老实说,我不确定这个钩子的使用范围有多广,因为它不是很有用。你也许可以把它漏掉。

SO网友:kero

否。函数将添加字符串"header-{$name}.php" 以搜索模板。你不能预先准备好它。

然而,如果你不在get_header 行动,你也可以使用get_template_part(), 因为这些功能的工作原理非常相似。

get_template_part(\'subdir/header\', \'my\');
将在中查找文件subdir/header-my.php.

结束

相关推荐

从图像路径中删除‘wp-Content/Themes/Themename/’

我目前正在将一个基于其他CMS的旧网站移动到一个新服务器上,使用WordPress。然而,这个网站在Google上排名很好,我必须保留所有的链接结构,包括来自图片的链接结构。因此,在旧CMS中,图像链接如下:http://www.domain-name.de/images/image1.jpg 现在,他们是这样的:http://www.domain-name.de/wp-content/themes/theme-name/images/image1.jpg 但它们必须与第一个示例中的一