WP Discourse effectue beaucoup de requêtes vers site.json

Oui.
La chose étrange est qu’il est censé être mis en cache, et je n’ai aucune raison de croire que ce n’est pas le cas.

$categories = get_transient( 'wpdc_discourse_categories' );
if ( ! empty( $options['publish-category-update'] ) || ! $categories ) {
  $body = $this->discourse_request( '/site.json' );
  if ( is_wp_error( $body ) ) {
    return $body;
  }

  if ( $body->categories ) {

    // supprimé pour plus de brièveté

    // Notez que la définition du cache à 0 désactivera l'expiration du transient.
    $category_cache_period = apply_filters( 'wpdc_category_cache_minutes', 10 );
    set_transient( 'wpdc_discourse_categories', $discourse_categories, intval( $category_cache_period ) * MINUTE_IN_SECONDS );

    return $discourse_categories;
  } else {
    return new \WP_Error( 'key_not_found', 'La clé des catégories n\'a pas été trouvée dans la réponse de Discourse.' );
  }
}

EDIT Lorsque je liste les transients, j’ai bien une clé timeout_wpdc_discourse_categories avec une valeur d’horodatage dans 5 minutes, mais je n’ai pas de wpdc_discourse_categories :thinking:

EDIT 2 set_transient( 'wpdc_discourse_categories', $discourse_categories, intval( $category_cache_period ) * MINUTE_IN_SECONDS ); retourne false. $discourse_categories est correctement rempli. D’autres transients fonctionnent.