wpseek.com
A WordPress-centric search engine for devs and theme authors



block_core_archives_build_dropdown_script › WordPress Function

Since6.9.0
Deprecatedn/a
block_core_archives_build_dropdown_script ( $dropdown_id )
Parameters:
  • (string) $dropdown_id ID of the dropdown field.
    Required: Yes
Returns:
  • (string) Returns the dropdown onChange redirection script.
Defined at:
Codex:

Generates the inline script for an archives dropdown field.



Source

function block_core_archives_build_dropdown_script( $dropdown_id ) {
	ob_start();

	$exports = array( $dropdown_id, home_url() );
	?>
	<script>
	( ( [ dropdownId, homeUrl ] ) => {
		const dropdown = document.getElementById( dropdownId );
		function onSelectChange() {
			setTimeout( () => {
				if ( 'escape' === dropdown.dataset.lastkey ) {
					return;
				}
				if ( dropdown.value ) {
					location.href = dropdown.value;
				}
			}, 250 );
		}
		function onKeyUp( event ) {
			if ( 'Escape' === event.key ) {
				dropdown.dataset.lastkey = 'escape';
			} else {
				delete dropdown.dataset.lastkey;
			}
		}
		function onClick() {
			delete dropdown.dataset.lastkey;
		}
		dropdown.addEventListener( 'keyup', onKeyUp );
		dropdown.addEventListener( 'click', onClick );
		dropdown.addEventListener( 'change', onSelectChange );
	} )( <?php echo wp_json_encode( $exports, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ); ?> );
	</script>
	<?php
	return wp_get_inline_script_tag(
		trim( str_replace( array( '<script>', '</script>' ), '', ob_get_clean() ) ) .
		"\n//# sourceURL=" . rawurlencode( __FUNCTION__ )
	);
}