最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

filters - How would I go about replacing this function in my child theme located in inctemplate-tags.php

programmeradmin4浏览0评论

How would I replace this function that lies inside inc/template-tags.php in my parent theme

function theme_navigation() {
?>
        
        <div id="theme-nav-container">
            <nav id="site-navigation" class="main-navigation">
                <?php wp_nav_menu( array('theme_location' => 'theme-studios-primary', 'menu_class' => 'sf-menu', 'fallback_cb' => false, 'walker'  => new theme ) ); ?><div class="clearfix-pro"></div>
            </nav>
            <div class="clearfix-pro"></div>
        </div>
        
        <!-- close #theme-nav-container -->
        
        
<?php
}

There is no add action that it is hooked on to, there is no check to see if the function already exists. How would I replace it without touching the parent theme. I have removed much of the code in the function for brevity but I think it still makes sense.

Thanks ahead of time

How would I replace this function that lies inside inc/template-tags.php in my parent theme

function theme_navigation() {
?>
        
        <div id="theme-nav-container">
            <nav id="site-navigation" class="main-navigation">
                <?php wp_nav_menu( array('theme_location' => 'theme-studios-primary', 'menu_class' => 'sf-menu', 'fallback_cb' => false, 'walker'  => new theme ) ); ?><div class="clearfix-pro"></div>
            </nav>
            <div class="clearfix-pro"></div>
        </div>
        
        <!-- close #theme-nav-container -->
        
        
<?php
}

There is no add action that it is hooked on to, there is no check to see if the function already exists. How would I replace it without touching the parent theme. I have removed much of the code in the function for brevity but I think it still makes sense.

Thanks ahead of time

Share Improve this question asked Jul 11, 2020 at 14:34 Anders KitsonAnders Kitson 1571 silver badge9 bronze badges 2
  • If the function is defined in the global scope in your parent theme, and you cannot alter the parent theme, then I don't think there is much you can do about it. But you can possibly overwrite the parent template file that calls theme_navigation with a child theme file. – Hans Commented Jul 11, 2020 at 15:17
  • yeah just realized it's referenced in header.php, so I am just overwriting that now. Thanks – Anders Kitson Commented Jul 11, 2020 at 15:19
Add a comment  | 

1 Answer 1

Reset to default 2

You can't replace the function, but you can substitute it:

  1. Copy the function to your child theme's functions file.
  2. Rename the function.
  3. Modify it as needed.
  4. Find the template file that references it, such as header.php, and copy that to your child theme.
  5. In your child theme's new template file replace the reference to the original function with your renamed version.
发布评论

评论列表(0)

  1. 暂无评论