[워드프레스] DB에 _transient 항목이 지워지지 않는 문제

워드프레스는 _transient라는 DB 항목을 사용하여 특정 데이터를 캐싱합니다. 캐싱되는 항목은 기본적으로 RSS 정보, Cron이 마지막으로 실행될 때 등에 대한 것이라고 합니다. 하지만 WordPress의 버그인지, 아니면 특정 플러그인으로 인한 것인지 캐시된 정보가 지정된 만료 시간이 지나도 지워지지 않고 wp_options 내에서 _transient_dash_, _transient_timeout_feed__site_transient_theme_ 등의 항목들이 쌓이는 문제가 발생하기도 합니다.

이런 문제가 이 글에서 다루어지고 있습니다. 이 글에 나와 있는 코드를 테마의 함수 파일에 추가하면 문제가 해결될 것입니다.

DB에서 제어하는 방법도 있습니다. 먼저 DB 관련 작업을 할 경우에는 백업이 필수입니다. DB를 백업한 후에 다음 쿼리를 시도해보시기 바랍니다.

SELECT option_name FROM wp_options WHERE option_name LIKE '_transient_timeout%' AND option_value < now();

wp_options는 설치된 워드프레스에서 기본 Prefix를 사용하지 않는 경우에는 절절히 수정하시기 바랍니다.

참고로 위의 쿼리를 실행하려면 phpMyAdmin에 접속하여 SQL 탭에서 위의 쿼리를 실행하도록 합니다(백업 필수!!!).

phpMyAdmin SQL Query - 워드프레스에서 transient 항목 삭제하기

위의 쿼리를 실행하면 만료된 transient 항목이 모두 표시될 것입니다.

참고:


댓글 남기기

* 이메일 주소는 공개되지 않습니다.