WordPress - 在一个网站中设置2个标题

时间:2014-04-21 07:19:18

标签: php wordpress

我必须像头一样。

  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';
}

它正在工作它只返回模板页面加载。

当我尝试加载任何其他类似的页面时,它会返回''值。它不会返回任何价值。

我想在第一个模板不访问时秒。

谢谢。

1 个答案:

答案 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