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 grep
s through Wordpress source code.
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 grep
s through Wordpress source code.
1 Answer
Reset to default 0It'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;
} );
发布者:admin,转转请注明出处:http://www.yc00.com/questions/1745246936a4618451.html
评论列表(0条)