get_var($wpdb->prepare("SELECT meta_value FROM {$wpdb->sitemeta} WHERE meta_key = 'active_sitewide_plugins' AND site_id = %d", get_current_network_id())); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching -- the stored list itself: during a signed request Relay's mu-plugin filters active_sitewide_plugins so only Relay loads $plugins = is_string($raw) ? maybe_unserialize($raw) : []; $all = array_keys(is_array($plugins) ? $plugins : []); return array_values($relay ? $all : array_diff($all, [plugin_basename(RELAY_FILE)])); } public static function subdomain(): bool { return is_multisite() && is_subdomain_install(); } /** Networks that still serve uploads through /files/ (ms_files_rewriting) keep them where Relay can't follow. */ public static function check(): void { if (is_multisite() && (bool) get_site_option('ms_files_rewriting')) { throw new RelayError( 'multisite.files_rewriting', esc_html__('This network still serves uploads through /files/ addresses (ms_files_rewriting), which SiteRelay does not support.', 'siterelay'), esc_html__('Move the network to the standard uploads folders first; WordPress has done so for new networks since version 3.5.', 'siterelay') ); } } }