Такая задача, нужно чтоб товары которые вывожу через шорткод не кешировались, а брал постоянно новые
Нашел в API такую функцию
protected function get_transient_name() {
$transient_name = 'wc_product_loop_' . md5( wp_json_encode( $this->query_args ) . $this->type );
if ( 'rand' === $this->query_args['orderby'] ) {
// When using rand, we'll cache a number of random queries and pull those to avoid querying rand on each page load.
$rand_index = wp_rand( 0, max( 1, absint( apply_filters( 'woocommerce_product_query_max_rand_cache_count', 5 ) ) ) );
$transient_name .= $rand_index;
}
return $transient_name;
}
Можно через фильтры как то отключить чтоб товары собирались рандомом из всех которые заложены шорткодом.
[products attribute="stil" terms="Дизайнерский" orderby="rand" limit="8"]
То есть все товары (а их 500 где то) будут рандомно крутиться. А сейчас только несколько блоков которые статичны и меняются переодически.