diff --git a/projects/plugins/jetpack/changelog/wpcom-admin-menu-bypass-special-cases b/projects/plugins/jetpack/changelog/wpcom-admin-menu-bypass-special-cases new file mode 100644 index 0000000000000..cd059c24184ef --- /dev/null +++ b/projects/plugins/jetpack/changelog/wpcom-admin-menu-bypass-special-cases @@ -0,0 +1,4 @@ +Significance: patch +Type: other + +WPCOM: Admin Menu customizations bypassed on files that do not render a menu diff --git a/projects/plugins/jetpack/modules/masterbar/admin-menu/load.php b/projects/plugins/jetpack/modules/masterbar/admin-menu/load.php index 412819effd2ef..ea1a54a9795eb 100644 --- a/projects/plugins/jetpack/modules/masterbar/admin-menu/load.php +++ b/projects/plugins/jetpack/modules/masterbar/admin-menu/load.php @@ -35,6 +35,21 @@ function should_customize_nav( $admin_menu_class ) { return false; } + // WPCOM-specific exemptions. + if ( is_a( $admin_menu_class, WPcom_Admin_Menu::class, true ) && ! $is_api_request ) { + $script_filename = ( ! empty( $_SERVER['SCRIPT_FILENAME'] ) ) ? basename( $_SERVER['SCRIPT_FILENAME'] ) : null; + + // Special case: /wp-admin/?service-worker doesn't render a menu at all: skip all menu work. + if ( 'index.php' === $script_filename && isset( $_GET['service-worker'] ) ) { // phpcs:ignore WordPress.Security.NonceVerification.Recommended + return false; + } + + // Special case: index-yourstuff.php and index-hotstuff.php don't render menus. + if ( 'index-yourstuff.php' === $script_filename || 'index-hotstuff.php' === $script_filename ) { + return false; + } + } + return true; }