我必须像头一样。
header-first.php
header-second.php
我创建了第一个和第二个模板。当第一个模板加载时,我想加载header-first.php,这是有效的。然后第二个像第一个。
我遇到问题,当我加载第二个模板然后header-second.php
加载工作但不是当我去任何页面然后我想加载header-second.php
但不加载header.php
当我加载第二个模板时,header-second.php加载工作。现在我去任何页面并查看帖子然后header.php文件加载我想加载header-second.php文件。请帮助我如何设置全局。
我尝试在function.php中设置全局,如。
global $header;
if(is_page_template('page-second.php')){
header = 'second';
}else if(is_page_template('page-first.php')){
header = 'first';
}
它正在工作它只返回模板页面加载。
当我尝试加载任何其他类似的页面时,它会返回''
值。它不会返回任何价值。
我想在第一个模板不访问时秒。
谢谢。答案 0 :(得分:2)
每个模板文件(如page.php,single.php,archive.php等)都会在其顶部显示get_header()
。
此函数加载标题(header.php)。
如果传入一个字符串作为第一个参数,它将尝试加载header-{argument}.php
,如果没有找到,它将加载header.php。
您要加载header-second.php
的任何地方,您需要将get_header();
更改为get_header( 'second' );
当此功能运行时会触发一个动作,但没有过滤器,因此您无法全局覆盖它,就像您尝试这样做一样。相反,您需要使用我在上面显示的功能单独更新模板文件。
总结变化:
<?php get_header(); ?>
要:
<?php get_header( 'second' ); ?>
进一步阅读:http://codex.wordpress.org/Function_Reference/get_header