我对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 );