我知道这个问题已经被问了很多,但每次我在这些问题上看到答案时,我都会像我应该的那样实施它。我的问题如下:
我在index.php中添加了以下语句,为我的静态主页(称为page-home.php)加载一个不同的标题(保存在header-frontpage.php中)。
if(is_front_page())
{
get_header('frontpage');
}
else
{
get_header();
}
我还将word-home设置为wordpress settings-> read中的静态首页。
这个结果不应该在我的主页加载header-frontpage.php吗?现在它只是为我的首页收回了我的header.php。可以在www.koencuijpers.com上找到实时预览(header.php加载错误)和www.koencuijpers.com/spot-map(正确加载header.php)。
我的index.php的完整代码是:
<?php
/**
* The main template file.
*
* This is the most generic template file in a WordPress theme
* and one of the two required files for a theme (the other being style.css).
* It is used to display a page when nothing more specific matches a query.
* E.g., it puts together the home page when no home.php file exists.
*
* @link https://codex.wordpress.org/Template_Hierarchy
*
* @package Spot_Utrecht
*/
if(is_front_page())
{
get_header('frontpage');
}
else
{
get_header();
}
?>
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<?php
if ( have_posts() ) :
if ( is_home() && ! is_front_page() ) : ?>
<header>
<h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
</header>
<?php
endif;
/* Start the Loop */
while ( have_posts() ) : the_post();
/*
* Include the Post-Format-specific template for the content.
* If you want to override this in a child theme, then include a file
* called content-___.php (where ___ is the Post Format name) and that will be used instead.
*/
get_template_part( 'template-parts/content', get_post_format() );
endwhile;
the_posts_navigation();
else :
get_template_part( 'template-parts/content', 'none' );
endif; ?>
</main><!-- #main -->
</div><!-- #primary -->
<?php
get_sidebar();
get_footer();
?>
答案 0 :(得分:1)
如果您将主页设置为静态页面,那么WordPress将遵循其模板层次结构来决定使用哪个模板:
https://developer.wordpress.org/themes/basics/template-hierarchy/#front-page-display
这意味着WordPress将不会使用index.php作为首页的模板,因此无论你做什么改变都没有效果。
因此,您需要在相应的模板中包含if语句(可能是front-page.php,具体取决于您的主题设置)。