There are multiple ways to do this, with varying levels of extremity.
Completely vaporize a file with locate_template()
require_if_theme_supports('inti-menus', locate_template('/framework/extensions/menus.php'));
Adding a file in your child theme called menus.php, while placing it in a recreated structure of FRAMEWORK/EXTENSIONS will completely replace the file and absolutely everything inside it. You might want to copy and paste its contents into your own menus.php
What to expand on that file without replacing it? Create a new file called child-menus.php and add a new require_if_theme_supports() for it in your functions file.
Remove actions from hooks
Inti Foundation template files and functions are full of hooks and filters. The hooks allow you to output some form of content to one or multiple places, usually after having molded what this would be with complex conditional statements or formatting. For example, in FRAMEWORK/CONTENT/content-footer.php we have a function that gets the Google Analytics ID from theme options and outputs the completed javascript in the footer of the page.
function inti_do_footer_analytics() {
$analytics_id = stripslashes(get_inti_option('analytics_id', 'inti_footer_options'));
if ( $analytics_id ) { ?>
<!-- Google Analytics -->
<script>
...
</script>
<!-- End Google Analytics -->
<?php
}
}
add_action('inti_hook_footer', 'inti_do_footer_analytics', 2);
Don’t want this here? Do you use a plugin for the same purpose? Then remove it…
function child_remove_actions(){
remove_action('inti_hook_footer', 'inti_do_footer_analytics');
}
add_action( 'after_setup_theme', 'child_remove_actions', 0 );
What to remove it so you can write it again differently, perhaps with different conditions? Then create a new function and re-add it.
function my_own_much_better_do_footer_analytics() {
$analytics_id = stripslashes(get_inti_option('analytics_id', 'inti_footer_options'));
if ( $analytics_id && $someothercondition ) { ?>
<!-- Google Analytics -->
<script>
...
</script>
<!-- End Google Analytics -->
<?php
}
}
add_action('inti_hook_footer', 'my_own_much_better_do_footer_analytics', 2);
Google recommends adding its Analytics code in the header. Inti Foundation prefers it in the footer so it loads at the end. Is Google right? Then remove the action as above, then re-add it on a hook you prefer…
function child_remove_actions(){
remove_action('inti_hook_footer', 'inti_do_footer_analytics');
add_action('inti_hook_head', 'inti_do_footer_analytics');
}
add_action( 'after_setup_theme', 'child_remove_actions', 0 );
Pluggable functions
Some of the functions in the parent theme that do things that don’t lend well to filters have been made plugable.
if ( !function_exists( 'inti_get_dropdown_social_links' ) ) {
function inti_get_dropdown_social_links() {
...
}
}
In your own code, you can simply recreate this function with the same name. Since the child theme is initialize first, your function will be the one that runs, while the parent theme function will be prevented from running by the function_exists() condition.