Wordpress 页面正在获取全局 header 而不是次要 header

Wordpress page is getting the global header instead of the secondary header

我是 Wordpress 的新手,我正在尝试建立一个网站,该网站在除 front-page.php 之外的所有页面中都有一个全局 header,但我的 front-page 正在获取全局 header 而不是唯一 header。 front-page 前面有一个英雄图片,当您向下滚动时,导航栏将固定在顶部。其他页面将具有相同的导航栏,但它将直接放置在顶部而不是底部。我想要的 front-page 中唯一 header (header-new.php) 的代码是:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta content="width=device-width, initial-scale=1.0" name="viewport">

  <title>Page Title</title>

  <!-- Favicons -->
  <link href="assets/img/favicon.png" rel="icon">
  <link href="assets/img/apple-touch-icon.png" rel="apple-touch-icon">

  <!-- Google Fonts -->
  <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Montserrat:300,300i,400,400i,500,500i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">

  <!-- Vendor CSS Files -->
  <link href="assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
  <link href="assets/vendor/icofont/icofont.min.css" rel="stylesheet">
  <link href="assets/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
  <link href="assets/vendor/venobox/venobox.css" rel="stylesheet">
  <link href="assets/vendor/owl.carousel/assets/owl.carousel.min.css" rel="stylesheet">
  <link href="assets/vendor/aos/aos.css" rel="stylesheet">

  <!--  Main CSS File -->
  <link href="assets/css/style.css" rel="stylesheet">
</head>

<body>

  <!-- ======= Hero Section ======= -->
  <section id="hero">
    <div class="hero-container">
      <h2 data-aos="zoom-in">Let's get to work.</h2>
        <ul data-aos="fade-up">
          <li>Personal Trainer</li>
          <li>Posing Coach</li>
        </ul>
      <a data-aos="fade-up" href="#about" class="btn-get-started scrollto">Learn More</a>
    </div>
  </section><!-- End Hero -->

  <!-- ======= Header ======= -->
  <header id="header" class="d-flex align-items-center">
    <div id="navbar-container">

      <div class="logo d-block d-lg-none">
        <a href="index.html"><img src="assets/img/dark-logo.png" alt="Logo" class="img-fluid"></a>
      </div>

      <nav class="nav-menu d-none d-lg-block">
        <ul class="nav-inner">
          <li class="nav-logo"><a href="index.html"><img src="assets/img/dark-logo.png" alt="Nav Logo" class="img-fluid logo-image"></a></li>
          <li class="active"><a href="index.html#hero">Home</a></li>
          <li><a href="#about">About</a></li>
          <li class="drop-down"><a href="#">Services</a>
            <ul>
              <li><a href="./personal-training.html">Personal  Training</a></li>
              <li><a href="./posing-lessons.html">Posing  Lessons</a></li>
              <li><a href="./macros-calculation.html">Macros-Nutrition</a></li>
            </ul>
          </li>
          <li><a href="#pricing">Pricing</a></li>
          <li><a href="#contact">Contact</a></li>
          <li><a href="./get-started.html">Get Started</a></li>

        </ul>
      </nav><!-- .nav-menu -->

    </div>
  </header><!-- End Header -->

将出现在所有其他页面中的全局代码 header (header.php):

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta content="width=device-width, initial-scale=1.0" name="viewport">

  <title>Page Title</title>
  <meta content="" name="descriptison">
  <meta content="" name="keywords">

  <!-- Favicons -->
  <link href="assets/img/favicon.png" rel="icon">
  <link href="assets/img/apple-touch-icon.png" rel="apple-touch-icon">

  <!-- Google Fonts -->
  <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Montserrat:300,300i,400,400i,500,500i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">

  <!-- Vendor CSS Files -->
  <link href="assets/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
  <link href="assets/vendor/icofont/icofont.min.css" rel="stylesheet">
  <link href="assets/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
  <link href="assets/vendor/venobox/venobox.css" rel="stylesheet">
  <link href="assets/vendor/owl.carousel/assets/owl.carousel.min.css" rel="stylesheet">
  <link href="assets/vendor/aos/aos.css" rel="stylesheet">

  <!-- Main CSS File -->
  <link href="assets/css/style.css" rel="stylesheet">
</head>

<body>

  <!-- ======= Header ======= -->
  <header id="header" class="d-flex align-items-center">
    <div class="container">

      <div class="logo d-block d-lg-none">
        <a href="index.html"><img src="assets/img/dark-logo.png" alt="Logo" class="img-fluid"></a>
      </div>

      <nav class="nav-menu d-none d-lg-block">
        <ul class="nav-inner">
          <li class="nav-logo"><a href="index.html"><img src="assets/img/dark-logo.png" alt="Nav Logo" class="img-fluid logo-image"></a></li>
          <li class="active"><a href="index.html">Home</a></li>
          <li><a href="./index.html#about">About</a></li>
          <li class="drop-down"><a href="#">Services</a>
            <ul>
              <li><a href="./personal-training.html">Personal  Training</a></li>
              <li><a href="./posing-lessons.html">Posing  Lessons</a></li>
              <li><a href="./macros-calculation.html">Macros-Nutrition Calculation</a></li>
            </ul>
          </li>
          <li><a href="./index.html#pricing">Pricing</a></li>
          <li><a href="./index.html#contact">Contact</a></li>
          <li><a href="./get-started.html">Get Started</a></li>
        </ul>
      </nav><!-- .nav-menu -->

    </div>
  </header><!-- End Header -->

并且在我的 front-page 的代码中,我试图获得唯一的 header 而不是全局的 header,这是我的 front-page 的代码:

<?php
if(is_page('front-page')) {
 get_header('new');
}
else {
 get_header();
}
 wp_head();
?>

<main id="main">
  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
</main><!-- End #main -->

  <?php get_footer();?>

我的 PHP 代码有错误吗?哪个是获得 secondary/unique header (header-new.php) 而不是全局 header (header.php) 的最佳方法?

正如@cBroe 在评论中指出的那样,问题出在 is_page() 函数上。

您应该使用 is_front_page() WP reference 检查您是否在首页。

<?php

if( is_front_page() && is_home() ) {

 get_template_part( 'new_header' );

} else {

 get_header();

}

?>

https://developer.wordpress.org/reference/functions/get_template_part/