Where is the Javascript attribute window._wpCustomHeaderSettings defined?

I'm trying to modify the behaviour of the Javascript function defined in wp-includes/js/wp-custom-header.js, to change the minimum windows height to display a video header. For this, I need to modify the attribute window._wpCustomHeaderSettings.minHeight At the time that my script runs, window._wpCustomHeaderSettings is not defined yet, so I create it with a window._wpCustomHeaderSettings = window._wpCustomHeaderSettings || {}, then set the attribute minHeight to a value of 0.

However, after the page is loaded, if I use the browser console to display this attribute, I see that it has the default value of 500.

So I tried to see where this value was defined to understand what I was doing wrong, but I couldn't, despite all my greps through Wordpress source code.

Topic video-header custom-header Wordpress javascript

Category Web


It's defined via wp_localize_script() that's called by the_custom_header_markup():

wp_localize_script( 'wp-custom-header', '_wpCustomHeaderSettings', get_header_video_settings() );

So if you want to override the values/settings using JavaScript, then you can hook to wp_print_footer_scripts and add your script like so:

add_action( 'wp_print_footer_scripts', function(){
    if ( wp_script_is( 'wp-custom-header' ) ) :
    ?>
        <script>
        if ( window._wpCustomHeaderSettings ) {
            _wpCustomHeaderSettings.minHeight = 0;
        }
        </script>
    <?php
    endif;
}, 11 );

But the variable name starts with _ which normally indicates a private variable that should never be "touched" (other than for reading its values), so I suggest you to use the header_video_settings filter instead to override the default minHeight (or any setting's) value:

add_filter( 'header_video_settings', function( $settings ){
    $settings['minHeight'] = 0;
    return $settings;
} );

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.