我对Wordpress相当陌生。我正在使用带有默认导航菜单的shop isle主题。我试图用一个别致的“Ubermenu”插件来覆盖它,但默认的折叠符号会一直覆盖该插件。
主题标头从目录shop isle/inc/structure/header加载。php。
我将整个目录复制到我的子主题目录,并在/header中进行了下面的编辑。php,但只有当我将其添加到父主题中的“structure”文件夹而不是子主题中时,它才起作用。
示例1
<?php if( function_exists( ‘ubermenu’ ) ): ?>
<?php ubermenu( \'main\' , array( \'theme_location\' => \'primary\' ) ); ?>
<?php else: ?>
<div class="header-menu-wrap">
<div class="collapse navbar-collapse" id="custom-collapse">
<?php
wp_nav_menu(
array(
\'theme_location\' => \'primary\',
\'container\' => false,
\'menu_class\' => \'nav navbar-nav navbar-right\',
)
);
?>
</div>
</div>
<?php endif; ?>
我尝试取消挂接加载标题的函数,但同时删除了标题!
主收割台。php调用shop-isle/inc/structure/header.php.
使用
<?php do_action( \'shop_isle_header\' ); ?>
挂钩。php位于
shop-isle/inc/structure/hooks.php
已使用注册回调函数
add_action( \'shop_isle_header\', \'shop_isle_primary_navigation\', 50 );
我已将所有文件复制到我的子主题,并保持目录结构不变,但它不会覆盖父文件。
如何在“函数”中添加上述代码(示例1)。php“在我的孩子主题中更新”shop-isle/inc/structure/header。php’?
SO网友:Jacob Peattie
不能通过将任意主题文件添加到子主题来替换它们。这只适用于template hierarchy 以及父主题明确允许替换的文件。请参见my answer to a similar recent question 有关儿童主题如何工作的更多信息。
要想弄清楚如何做你想做的事情,你应该联系主题作者,但根据你到目前为止发布的内容,可以说你需要先使用remove_action()
与最初用于挂钩的参数相同:
remove_action( \'shop_isle_header\', \'shop_isle_primary_navigation\', 50 );
然后在子主题中,您需要在子主题的函数中创建一个新的函数。php文件,用于输出所需的标题:
function wpse_309907_primary_navigation() {
if ( function_exists( ‘ubermenu’ ) ): ?>
<?php ubermenu( \'main\' , array( \'theme_location\' => \'primary\' ) ); ?>
<?php else: ?>
<div class="header-menu-wrap">
<div class="collapse navbar-collapse" id="custom-collapse">
<?php
wp_nav_menu(
array(
\'theme_location\' => \'primary\',
\'container\' => false,
\'menu_class\' => \'nav navbar-nav navbar-right\',
)
);
?>
</div>
</div>
<?php endif;
}
然后将其挂在原来的位置:
add_action( \'shop_isle_header\', \'wpse_309907_primary_navigation\', 50 );