mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-06-28 22:30:04 +00:00
Editor: Reduce the use of the _wp_array_get() function to improve performance.
`_wp_array_get()` is an expensive function, and it's called thousands of times on each page view on the front end. While the function performance was slightly improved in #58376, it is still called more times than it should be. This commit aims to further optimize its usage: * In many cases, `_wp_array_get()` can be replaced with a much simpler and faster `isset()` check. * The `isset()` function is capable of checking nested arrays, so `isset( $foo['a']['b']['c'] )` will return false even if `$foo['a']` is unset, without throwing any errors or warnings. * When `_wp_array_get()` cannot be directly replaced with `isset()`, it would be good practice to wrap it in an `isset()` function so that `_wp_array_get()` only runs when it needs to. Original PR from Gutenberg repository: * [https://github.com/WordPress/gutenberg/pull/51116 #51116 Performance improvement: Reduce the use of the _wp_array_get() function] Follow-up to [55851], [56382]. Props aristath, jrf, spacedmonkey, mukesh27, swissspidy, hellofromTonya. Fixes #59405. git-svn-id: https://develop.svn.wordpress.org/trunk@56709 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -4253,7 +4253,9 @@ function wp_render_duotone_filter_preset( $preset ) {
|
||||
function wp_skip_border_serialization( $block_type ) {
|
||||
_deprecated_function( __FUNCTION__, '6.0.0', 'wp_should_skip_block_supports_serialization()' );
|
||||
|
||||
$border_support = _wp_array_get( $block_type->supports, array( '__experimentalBorder' ), false );
|
||||
$border_support = isset( $block_type->supports['__experimentalBorder'] )
|
||||
? $block_type->supports['__experimentalBorder']
|
||||
: false;
|
||||
|
||||
return is_array( $border_support ) &&
|
||||
array_key_exists( '__experimentalSkipSerialization', $border_support ) &&
|
||||
@@ -4275,7 +4277,9 @@ function wp_skip_border_serialization( $block_type ) {
|
||||
function wp_skip_dimensions_serialization( $block_type ) {
|
||||
_deprecated_function( __FUNCTION__, '6.0.0', 'wp_should_skip_block_supports_serialization()' );
|
||||
|
||||
$dimensions_support = _wp_array_get( $block_type->supports, array( '__experimentalDimensions' ), false );
|
||||
$dimensions_support = isset( $block_type->supports['__experimentalDimensions'] )
|
||||
? $block_type->supports['__experimentalDimensions']
|
||||
: false;
|
||||
|
||||
return is_array( $dimensions_support ) &&
|
||||
array_key_exists( '__experimentalSkipSerialization', $dimensions_support ) &&
|
||||
@@ -4297,7 +4301,9 @@ function wp_skip_dimensions_serialization( $block_type ) {
|
||||
function wp_skip_spacing_serialization( $block_type ) {
|
||||
_deprecated_function( __FUNCTION__, '6.0.0', 'wp_should_skip_block_supports_serialization()' );
|
||||
|
||||
$spacing_support = _wp_array_get( $block_type->supports, array( 'spacing' ), false );
|
||||
$spacing_support = isset( $block_type->supports['spacing'] )
|
||||
? $block_type->supports['spacing']
|
||||
: false;
|
||||
|
||||
return is_array( $spacing_support ) &&
|
||||
array_key_exists( '__experimentalSkipSerialization', $spacing_support ) &&
|
||||
|
||||
Reference in New Issue
Block a user