워드프레스의 wp_the_query 문제


얼마 전 ihad씨의 오류보고로 시작된 여정이 이제야 막을 내렸습니다. 나름 워드프레스의 구조에 대해서 전반적인 내용은 알고 있다고 생각했었는데 이번 기회에 그게 아니라는걸 알게되기도 했죠.

노파심에 우선 말씀드리자면, 이 글은 워드프레스에 대한 정보성 글이 아니라, “그래… 나 참 고생 했다…” 라는 내용을 그냥 풀어서 적어놓은 글입니다.

문제는 wp-slimstat-ex에서 (wordpress.com stats 도 마찬가지) 페이지 접속정보는 매번 다른데 글 제목이 모두 하나로 표시된다는 내용이었습니다.

ihad씨가 두가지 통계 플러그인을 사용하면서 두 플러그인 모두에서 발생한 현상을 설명하다보니, 원인을 찾아가는데 혼란이 있기는 했습니다만, 제가 테스트 해 본 결과 K2 테마에서만 문제가 발생하는 것을 확인 할 수 있었습니다. 그래서 저는 “아하~ K2 문제구나!” 생각을 하고 그렇게 답을 남겼었죠.

그리고는, 테스트 용으로 K2최근 SVN 버전을 설치해 놓기도 한 김에, 혹시나 원인을 찾을 수 있을까 하는 생각으로 하나 하나 짚어 나가던 중 일단 눈에 보이는 원인은 찾아내게 되었죠.

그 원인을 찾는 과정을 하나하나 나열하자면 글이 너무 지저분해 지니 결론만 말씀드리자면, ‘Latest Posts(최근글)’ 사이드바 모듈이 문제였습니다. 해당 모듈을 개별 글 페이지(single post page)에서 제외시키면 문제가 발생하지 않더군요. 아니나 다를까 잘못 표시되는 글 제목이 모두 ‘최근글 목록’의 마지막 글에 해당하는 제목 들이더군요.

그래서 또 이래 저래 원인을 찾아 보다가 정작 원인은 찾지 못하고, 그 해결법을 소 뒷걸음 치다가 쥐잡듯이 찾게 되었습니다. 그리고는 더 이상 원인을 찾는것을 포기해 버리고는 “대충 문제는 이러저러 한 것 같은데, 해결 법은 이렇다” 고는 답을 달아 두었죠.

그 다음 바로 Andy씨의 답이 달리더군요. 내용은 “$wp_the_query 는 워드프레스에서 처음 query한 내용을 그대로 유지하기 위해서 만들어진 것인데, 그런 방법이 해결책이 될 리가 없다. 다시 살펴봐라” 인데… 결과적으로 $wp_the_query가 처음의 query값들을 그대로 유지하지 못하고 있다는게 문제였죠.

여러면에서 저보다는 워드프레스에대해 더 잘 알고있는 사람이 한 얘기인데다, 슬슬 귀찮아지기도 해서 “뭐… 그럼 K2문제인가 보네…” 라고 생각해 버린… 게다가 이 문제는 유독 K2에서만 발생하는 것이기도 했구요. 다른 테마들에서는 해당 모듈(Latest Posts)이 개별 글 페이지에 포함되어 있어도 별다른 문제가 발생하지 않았거든요.

또 다시 K2테마를 가지고 삽질을 시작했습니다. “그냥 될대로 되라 어쨓든 내 플러그인 문제도 아닌데 알아서들 해결 하겠지…” 하며 문제를 덮을까도 했는데, 어느새 어디서 솟아났는지 모를 똥고집과 자존심 때문에 중간 중간 시간 날 때 마다 삽질을 하게 되더군요.-_-;

역시, 그 중간과정은 생략하기로 하고 결론은 $wp_the_query가 처음의 query 값을 유지하지 못하는 것입니다. 그리고는 다시 포럼의 해당 글로 쫒아가서는 제 의견을 남겼습니다. 그리고는 내심 흐뭇해 하며 그 해결책 또한 같이 남겼죠.

ihad씨도 워낙에 오지랍이 넓은 사람인지 이 문제에 대해서 어지간한 곳에는 모두 글을 남겼더군요. 그 중에 한 곳이 워드프레스 개발 Trac 페이지 였는데, 확인 해 보니 제 답글들 (블로그, 포럼 등) 그대로 ticket 페이지에 옮겨 놓았더군요. (따로 ticket을 만들어 놓았었는데… 흑…)

어쨓든 결과는 $wp_the_query가 포함되기 시작한 뒤의 모든 워드프레스에서의 버그(Bug)로 판명되었지만, 그 해결책(patch)는 저의 어설픈 방법이 아닌, Andy씨의 것이 될 듯 합니다. 나름 으쓱대며 적어놓은 해결책이었는데 말이죠^^;

처음으로 워드프레스 오류 해결에 조금이나마 일조 했다는 뿌듯함에 글을 적어봤는데, “별거 아닌 일에 호들갑”이 되어버렸네요.:P

덧) 자세히 보신 분들은 아시겠지만, 해당 ticket 토론 과정에서 제 어설픈 실수가 또 하나 있었죠. Andy씨가 적어놓은 해결법을 patch 파일로 만들어서 올리는 과정에서 파일명 중 ‘first’를 ‘fist’라고 잘못 적어버린…(save_fist_wp_query_to_wp_the_query.patch) -_-;

덧) 해당 ticket이 적용 되었네요 : changeset rev 6232.


One response to “워드프레스의 wp_the_query 문제”

  1. Unfortunately I do not understand any Korean. But I was a greally great fan of slimstat Ex! You write something in your post about it. Please please, could you explain, what you write in English? I would love to get Slimstat Ex on my current wordpress version running again! Thanks a lot!