0

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.

1 Answer 1

0

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;
} );
1
  • 1
    This is working perfectly, thank you very much the clarity of your answer.
    – user153991
    Commented Aug 14, 2019 at 9:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.