wpseek.com
A WordPress-centric search engine for devs and theme authors
block_core_navigation_get_submenu_visibility › WordPress Function
Since6.9.0
Deprecatedn/a
› block_core_navigation_get_submenu_visibility ( $attributes )
| Parameters: |
|
| Returns: |
|
| Defined at: |
|
| Codex: |
Returns the submenu visibility value with backward compatibility for the deprecated openSubmenusOnClick attribute.
This function centralizes the migration logic from the boolean openSubmenusOnClick to the new submenuVisibility enum. Backward compatibility: WordPress applies default attribute values, so submenuVisibility will always have a value even for legacy blocks. We check the legacy openSubmenusOnClick attribute first to preserve original behavior for blocks saved before the migration.Source
function block_core_navigation_get_submenu_visibility( $attributes ) {
$deprecated_open_submenus_on_click = $attributes['openSubmenusOnClick'] ?? null;
// For backward compatibility, prioritize the legacy attribute if present.
// Legacy blocks have openSubmenusOnClick in the database. Since WordPress applies
// default values, submenuVisibility will also have a value, but we check the legacy
// attribute first to preserve the original behavior. If the block has been updated
// and saved in the editor, then the deprecated attribute will be replaced by submenuVisibility.
if ( null !== $deprecated_open_submenus_on_click ) {
// Convert boolean to string: true -> 'click', false -> 'hover'.
return ! empty( $deprecated_open_submenus_on_click ) ? 'click' : 'hover';
}
$submenu_visibility = $attributes['submenuVisibility'] ?? null;
// Use submenuVisibility for migrated/new blocks (where openSubmenusOnClick is null).
return $submenu_visibility ?? 'hover';
}