WP Discourse가 site.json에 많은 요청을 보내는 중

네.
이상한 점은 캐싱되어야 하는데, 그렇지 않다고 생각할 이유는 없다는 거예요.

$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 ) {

    // 생략

    // 참고: 캐시를 0으로 설정하면 트랜시언트 만료 기능이 비활성화됩니다.
    $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', 'Discourse에서 받은 응답에 categories 키를 찾을 수 없습니다.' );
  }
}

수정: 트랜시언트 목록을 확인해 보면 5분 후의 타임스탬프 값이 있는 timeout_wpdc_discourse_categories 키는 있지만, wpdc_discourse_categories는 없습니다 :thinking:

수정 2: set_transient( 'wpdc_discourse_categories', $discourse_categories, intval( $category_cache_period ) * MINUTE_IN_SECONDS );가 false를 반환하고 있습니다. $discourse_categories는 올바르게 채워져 있습니다. 다른 트랜시언트는 정상적으로 작동합니다.