운영 중인 다른 워드프레스 사이트에서 WordPress 버전을 최신 버전인 4.3으로 업그레이드하면 포트폴리오(커스텀 포스트 타입)의 카테고리 페이지가 제대로 표시되지 않는 문제가 발생했습니다. 그래서 WordPress 4.2 버전을 유지할 수 없었습니다. 문제 해결을 위해 테마 제작자에게 문의했지만 테마 제작자는 이 문제를 재현할 수 없다는 답장을 해 왔습니다. 질문과 답변을 꾸준히 주고 받으면서도 문제를 해결할 수 없었습니다.
wp-confing.php에서 debug 기능을 true로 설정하니 "The called constructor method for WP_Widget is deprecated since version 4.3.0!" 관련 오류 메시지가 표시되어 혹시 문제가 이 때문이 아닐까 해서 테마 제작자의 도움을 얻어 WP_Widget 관련 오류를 수정했지만 문제가 해결되지 않았습니다.
그러다 제작자는 문제는 테마 때문이 아니라 서버 환경과 관련된 것 같다고 언급했고 나도 같은 생각이었습니다. 그래도 문제는 해결해야 했기에 해당 테마의 템플릿 소스를 가지고 수정을 해 보았지만 문제 해결이 요원해 보였습니다. 그러다가 우연히 다음과 같은 구문을 발견했습니다.
array( array(
혹시나 해서 array 하나를 지우니 문제가 정말로 마법같이 해결되었습니다. (이래서 영문에서 work like a charm이라는 표현을 사용하나 봅니다.) 몇 백 줄이 넘는 소스에서 이 사소한 문법 오류(?) 때문에 테마 제작자와 얼마나 많은 메시지를 주고 받았는지 모릅니다.
추가: 사실 위의 array of arrays(배열의 배열)는 오류가 아니지만 이상하게 워드프레스 4.3에서 특정 상황에서 제대로 해석하지 못하는 문제가 발생한 것 같습니다.
댓글 남기기