我正在尝试使用子主题向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>
最合适的回答,由SO网友:Andy Macaulay-Brook 整理而成
这个编辑解释了这一点。字母书写不好。它使用php的include而不是WordPress自己的include函数,如get_header
和get_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>