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 ![]()
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.