Функция wc_get_attribute_taxonomies:
spoiler// /wp-content/plugins/woocommerce/includes/wc-attribute-functions.php
function wc_get_attribute_taxonomies() {
$prefix = WC_Cache_Helper::get_cache_prefix( 'woocommerce-attributes' );
$cache_key = $prefix . 'attributes';
$cache_value = wp_cache_get( $cache_key, 'woocommerce-attributes' );
if ( $cache_value ) {
return $cache_value;
}
$raw_attribute_taxonomies = get_transient( 'wc_attribute_taxonomies' );
if ( false === $raw_attribute_taxonomies ) {
global $wpdb;
$raw_attribute_taxonomies = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}woocommerce_attribute_taxonomies WHERE attribute_name != '' ORDER BY attribute_name ASC;" );
set_transient( 'wc_attribute_taxonomies', $raw_attribute_taxonomies );
}
/**
* Filter attribute taxonomies.
*
* @param array $attribute_taxonomies Results of the DB query. Each taxonomy is an object.
*/
$raw_attribute_taxonomies = (array) array_filter( apply_filters( 'woocommerce_attribute_taxonomies', $raw_attribute_taxonomies ) );
// Index by ID for easer lookups.
$attribute_taxonomies = array();
foreach ( $raw_attribute_taxonomies as $result ) {
$attribute_taxonomies[ 'id:' . $result->attribute_id ] = $result;
}
wp_cache_set( $cache_key, $attribute_taxonomies, 'woocommerce-attributes' );
return $attribute_taxonomies;
}
во время её работы происходит большая выборка данных из базы, что сильно сказывается на скорости загрузки сайта.
Что можно с этим сделать, как её оптимизировать? Имею большое кол-во атрибутов, где-то 2000.