WordPress 2.1과 Ultimate Tag Warrior pt.2

지난번 소개했던 워드프레스 2.1과 UTW 사이의 오류 해결법으로는 완벽하게 문제가 해결되지 않음을 알게 되었습니다.

기왕 해결법을 공개 한 김에, 확실하게 해결 할 수 있는 다른 방법을 찾던 도중 WordPress 2.0 이후 버전에서는 “do_action('save_post')” 만으로도 태그의 추가, 제거 등의 변경 내용을 수렴 할 수 있다는 것을 알게 되었습니다. 따라서, add_action('edit_post', ....) 등의 다른 hook들은 더 이상 필요하지 않게 되었다는 거죠.

이 문제에 있어서의 근본 원인이 “wp_update_comment_count()” 함수에서 “do_action('edit_post', $post_id);” 을 실행하는데 있으므로, 아래와 같이 ultimate-tag-warrior-actions.php 파일을 수정함으로서 이 문제를 해결 할 수 있습니다(862~867 번째 줄 부근):

혹시, 이 방법으로 인해 다른 문제가 발생한다면 알려주세요:?

WordPress 2.1과 Ultimate Tag Warrior

이 글에서 소개 한 방법으로는 문제가 확실하게는 해결되지 않아서, 다른 방법을 찾아 보았습니다. 새로운 방법을 확인해서 적용 해 보세요.

저 처럼 실험 정신이 강하여 이미 WordPress 2.1 로 업그레이드 한 또는 하려는 분들 중 UTW를 사용중이신 분들 께서는 댓글 때문에 해당 글의 태그들이 모두 리셋(reset)되어 버리는 불상사를 겪을 수 있으니 주의하시기 바랍니다.

2.1로 업그레이드 한 뒤에도 며칠동안 전혀 이런 문제를 눈치채지 못하다가 바로 이전 글의 태그가 자꾸 사라져 버리는 걸 이제서야 눈치 챘습니다.

검색 해 보니 증상은 최근 공개된 UTW v3.1415926 이전 판을 사용 중일때, 아래에 해당되는 경우 해당 글의 태그가 모두 사라져 버리는 것 이었습니다 :

  • 1. 댓글이 등록 될 때
  • 2. moderate 상태의 댓글을 approve 할 때
  • 3. Akismet 에 스팸으로 등록 된 댓글을 ‘no spam’ 으로 되돌릴 때

최근 공개된 UTW v3.1415926 에서는 1번의 경우는 해결 되었으나 2,3번의 경우는 여전히 문제를 유발시키 더군요. UTW 포럼에 등록되어 있는 답글 중 해당 문제가 발생하는 동안의 Mysql log 부분을 참고해서 원인을 찾아보니 “wp_update_comment_count()” 함수에서 “do_action('edit_post', $post_id);“를 실행하는게 그 원인 이었습니다.

댓글 갯수를 업데이트 하는 동안에 왜 ‘edit_post’ 관련 hook를 실행하는 지를 저로서는 이해 할 수 없지만, 어쨓든 임시적으로 나마 이 문제를 해결 하려면 ‘ultimate-tag-warrior-actions.php‘ 파일의 ‘ultimate_save_tags()‘ 함수를 아래와 같이 수정 해 주면 됩니다.

백업의 중요함을 다시 한번 깨닫는 순간 이었습니다:)