子主题header1.php文件不覆盖父主题的header1.php文件

时间:2016-06-10 作者:gallifrey1212

我正在尝试使用子主题向WordPress站点添加自定义标题导航(我使用Alphabet 主题)。我确定我正在使用header1。php文件,根据内部样式和我在管理视图中所做的选择。我抄了校长。php文件从父主题到子主题,并添加到新的div块中。然而,新的div没有出现。

我已经在WP管理员中成功注册了我的新菜单,并为它创建了链接,即子主题样式的CSS。当我检查Google Chrome开发工具中的source选项卡时,css文件正在加载,并且我已经在admin中激活了子主题。我还确保在我的子主题中复制includes->header\\u布局目录。

我不确定我错过了什么?我不想将新导航添加到父主题中,因为每当主题更新时,它都会被覆盖,这是一个很大的不便。是否有其他方法可以创建自定义导航?

编辑:标题底部。php文件中,有一段代码根据用户在管理中的选择获取适当的标题内容:

<div class="header">
      <div class="inner_header">
          <!-- Start Header Position -->
          <?php if(alphabet_get_option(\'header_position\') == \'header1\') { include ( get_template_directory() . \'/includes/header_layout/header1.php\'); } ?>
          <?php if(alphabet_get_option(\'header_position\') == \'header2\') { include ( get_template_directory() . \'/includes/header_layout/header2.php\'); } ?>
          <?php if(alphabet_get_option(\'header_position\') == \'header3\') { include ( get_template_directory() . \'/includes/header_layout/header3.php\'); } ?>
          <?php if(alphabet_get_option(\'header_position\') == \'header4\') { include ( get_template_directory() . \'/includes/header_layout/header4.php\'); } ?>
          <?php if(alphabet_get_option(\'header_position\') == \'header5\') { include ( get_template_directory() . \'/includes/header_layout/header5.php\'); } ?>
          <?php if(alphabet_get_option(\'header_position\') == \'header6\') { include ( get_template_directory() . \'/includes/header_layout/header6.php\'); } ?>
          <?php if(alphabet_get_option(\'header_position\') == \'header7\') { include ( get_template_directory() . \'/includes/header_layout/header7.php\'); } ?>
          <!-- End Header Position -->
      </div>
    </div> 

1 个回复
最合适的回答,由SO网友:Andy Macaulay-Brook 整理而成

这个编辑解释了这一点。字母书写不好。它使用php的include而不是WordPress自己的include函数,如get_headerget_template_part 正在破坏父/子层次结构。你可以复制一份文件header.php 只要文件调用header.php 是否正确!

只要alphabet_get_option 只返回那些有效值或其他内容falsy 这应该可以解决它:

<div class="header">
  <div class="inner_header">
      <!-- Start Header Position -->
      <?php
      $header_layout = alphabet_get_option(\'header_position\');
        if( $header_layout ) {
            get_template_part( \'includes/header_layout/\' . $header_layout );
        }
      ?>
      <!-- End Header Position -->
  </div>
</div> 

相关推荐

无法将设置添加到“NAV_MENUS”定制器面板

我试图在自定义程序的“菜单”面板中添加一个复选框,但由于某些原因,它没有显示出来。如果我尝试将其从“nav\\u菜单”更改为“title\\u tagline”或“colors”,复选框会显示得很好。是什么阻止它显示在“菜单”面板上?// add custom options to the Customizer function nssra_customizer_options($wp_customize) { // add \"menu primary flex\" checkb