config->debug || (WP_DEBUG && WP_DEBUG_LOG)) { $this->config->logger->debug("Deleting transients from database... {$traceSummary}"); } $this->deleteTransientsFromOptions(); if (is_multisite()) { $this->deleteTransientsFromSiteMeta(); $this->deleteTransientsFromSites(); } } /** * Delete transients from `options` table. * * @return void */ public function deleteTransientsFromOptions() { global $wpdb; $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->options} WHERE option_name LIKE %s OR option_name LIKE %s", '_transient_%', '_site_transient_%' ) ); } /** * Delete transients from `sitemeta` table. * * @return void */ public function deleteTransientsFromSiteMeta() { global $wpdb; $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->sitemeta} WHERE meta_key LIKE %s", '_site_transient_%' ) ); } /** * Delete transients from all site's `options` tables. * * @return void */ public function deleteTransientsFromSites() { global $wpdb; $siteIds = get_sites([ 'fields' => 'ids', 'number' => 10000, ]); foreach ($siteIds as $id) { $prefix = $wpdb->get_blog_prefix($id); $wpdb->query( $wpdb->prepare( "DELETE FROM {$prefix}options WHERE option_name LIKE %s", '_transient_%' ) ); } } }