워드프레스 플러그인과 prototype, scriptaculous, moo.fx 스크립트

Ajax-Spoiler 플러그인을 처음 만들때부터 우려해왔던 오류들이 최근들어 점점 늘어가는군요. 각 플러그인이나 테마들 사이에서 동일한 스크립트를 사용함에 있어서 발생하는 문제들입니다.

아무래도 prototype 이나 scriptaculous 스크립트를 사용하는 플러그인도 많아자고 K2와 같이 테마 자체에서 그런 기본이 되는 자바 스크립트들을 포함하는 경우가 많아지다보니, 스크립트들의 중복로딩이나 버전간의 문제가 생길 수 밖에 없어졌습니다.

그래서 기본적인 스크립트를 페이지에서 점검하고 없는 스크립트만 로딩하는 플러그인을 만들어볼까 했는데 prototype이 effets.js나 moo.fx.js보다 먼저 로딩되어야하고, 이전버전보다 최근버전이 나중에 로딩되어야 하는등.. 스크립트가 로딩되는 순서와 스크립트를 사용하는 플러그인들의 우선순위까지 맞춰줘야 하기때문에 이게 만만치 않더군요.(깔끔하고 완벽하게 적용하기란 불가능하다는 결론을 내렸습니다 :|)

현재로서는 사용자가 직접 자신의 블로그에서 소스(<head></head>)부분을 확인해서 결정하는게 최선인듯 합니다.

아니라면, 기본이 되는 스크립트(prototype, scriptaculous, moo.fx 등…)을 한번에 관리 할 수 있는 플러그인을 사용하고, 나머지 플러그인에서는 그 스크립트들을 로딩하지않는 방법(제가 지금 그렇게 하고 있습니다)을 쓰는게 가장 속 편한 방법이겠죠.

그렇게 하기 위해서는 플러그인 제작자들이 기본이 되는 스크립트를 사용하는 플러그인을 만들때는 필요한 스크립트를 로딩하는 플러그인을 사용하도록 유도하고, 자신의 플러그인에서는 스크립트를 로딩하지 않게 하는게 필요합니다.

이건 좀 다른 얘기지만 가끔 자바 스크립트 파일이 분명 그 폴더에 존재하며, 그 전까지 계속 잘 사용해 왔는도 불구하고 브라우저에서 그 스크립트를 찾지 못하는 경우도 있더군요. 저로서는 원인을 알 수 없지만, 제가 해결했던 방법은 확장자가 .js인 파일을 .php 파일로 바꾼뒤 파일의 맨 윗부분에서 파일을 자바 스크립트로 인식하게 하는것 이었습니다.(K2테마나 wp-lightbox2 에서 사용중인 방법입니다.)

오류가 발생하는 원인에 대해서는, 잘은 모르겠지만 “아파치나 워드프레스의 경로인식에 문제가 있지 않을까..” 또는, “브라우저의 설정(보안)과 관련이 있지 않을까..” 정도만 생각해 봤습니다.

Wp-Scripts라는 플러그인을 공개할 생각으로 글을 쓰기 시작했는데 너무 길어져 버려서 플러그인 공개글을 따로 적어야 겠네요. 할 일도 있으니 이쯤에서 끝내고 다음 글에서 Wp-Scripts플러그인을 공개하도록 하겠습니다.