현재 사용하고 있는 설치형 블로깅 툴인 WordPress는 유연한 코어 + 강력한 플러그인들로 구성되어 있다.
특정 출력이 나오기전엔 일련의 hook 들에서 지정된 필터를 거치게 되어있고, 이런 필터를 쉽게 추가할 수 있게 되어있다 – 혹은 전혀 새로운 페이지 / 관리자 페이지를 만들 수도 있다.
사실 2.2까지는 태그도 지원 안 하는 툴이었지만 이미 Ultimate Tag Warrior 라거나 Jerome’s Keyword라거나 지금 쓰고 있는 Simple Taggng같은 툴들이 이미 존재한다. 비슷한 방식으로(…) WP 코어에 없는 기능들은 각각의 사용자들이 구현하고, wordpress forum을 통해 상호 지원하는 형태로 운영되고 있다.
각설하고(…) 현재 이런 플러그인들을 쓰고 있다.
- Akismet : Spam 메시지들을 막아주는 강력한 플러그인이다. Spam 여부를 Akismet 웹서비스에게 확인 받는 방식으로 – 이미 서비스 서버에 모여있는 정보들을 이용해서 판단한다 – WP에 포함된 플러그인의 변경없이 동작한다. 로컬에 아무런 디비 정보 같은걸 남기지 않는데도 대략 1000:1 비율정도로 스팸을 걸러내니 만족스럽다.
- Close Old Posts: 일정 기간이 경과한 포스팅에 댓글/트랙백 or 핑백을 금지하는 플러그인이다. 달랑 파일 하나에 설정하려면 직접 파일을 고쳐야하긴하지만 나름대로 괜찮다 – 이 블로그의 경우 쓴지 2년이 넘은 Fedora 글에 스팸 1/3 정도가 달린다 -_-;
- Creative Commons Configurator: CCL 라이센스의 각 세부 설정을 저장하고, 해당하는 이미지 주소와 HTML 표현을 제공해준다. (현재 각 포스팅 하단과 RSS 피드, 사이드바 하단에 표시된다) 그리고 이런 출력결과를 특정 함수를 이용해서 다른 페이지에서도 사용할 수 있기 때문에 매우 유용하다[…]
- Redirection: WordPress 페이지들을 접근할 때 접근한 URI에 따라 다른 곳으로 redirection† 시켜 준다. rein.upnl.org 에 기반하지 않은 RSS/ATOM 피드 주소 – 현재 virtual host설정이라 upnl.org/~rein/ 으로도 접근이 된다 – 를 rein.upnl.org기반 주소로 변경하는데 쓰고 있다. 이 이외에도 옮겨진 페이지에 대한 자동 재설정이나 없는 페이지 참고에 대한 것, 정규 표현식; regular expression을 사용한 주소 redirection이 가능해서 좋다. (사실 .htaccess를 고치고 있기는 좀 귀찮지?)
- Simple Tagging: WordPress에서 지원하지 않는 – 사실 2.3beta부터는 지원된다 – 포스팅 별 태깅을 위한 플러그인이다. 포스트 별 태그 / 태그 클라우드 기능을 지원한다.
- WP-SlimStat-Ex: 오늘 오전(…)까지 사용하고 있었던 WP-SlimStat의 확장버젼 – 제작자가 다르지만 원래의 WP-SlimStat을 기반으로 하고 있음 – 이다. 원래의 Slim…한 이미지가 없어지긴 했지만, 약간 화려한 AJAX 기반 방문자/리퍼러/브라우져정보/… 등등의 통계 페이지를 제공하는 플러그인
- WP-Syntax: 포스팅에 소스코드를 입력할 때 컬러링/구문강화 기능을 제공하는 플러그인. 사실이 부분은 TinyMCE에 추가되었으면 좋겠는데…(사실 이미 있을지도?)
2.3 버젼이 최종적으로 릴리즈 되게 되면 아마 하나 줄겠지만, 그 이후에도 사용하는 플러그인은 꾸준히 늘어날 것이다[…]
† HTTP 응답으로 오는 상태 코드; status code에는 몇 가지 종류가 있는데 일반적으로 보게되는 200 OK (…이건 정말로 보게되는 일은 드물겠지만), 400(bad request)/401(unauthrized)/403(forbidden)/404(page not found) 같은 것은 자주 보게되는 코드일 것이다.
이 플러그인에서는 301/302/303 상태 코드를 이용한다.
- 301; moved permanently의 경우 완전히 이전된 주소; URI이니 헤더에 포함된 주소로 옮겨 달라는 의미이다.
- 302; found의 경우 임시로 이전된 주소; URI이니 일단 이 주소를 쓰되, 포함된 주소를 이번엔 써라의 의미이다.
- 303; see other의 경우 헤더에 포함된 주소를 참조하되 GET method를 써달라는 것이다.
사실 이런 식으로 HTTP 상태 코드를 일일이 신경써가면서 플러그인을 만들기는 힘든데 – 혹은 무지 귀찮은데 – 세심하게 만들어준 다른 개발자/사용자가 있다는 것은 무척 즐거운 일이다 :D
Updated 21:38 – 빠뜨린 dagger의 주석을 추가
전 지난 주에 텍스트큐브 1.5로 업그레이드 했다지요 :D
Textcube 좋지. 사실 국내에서 쓰기엔 워드프레스보다 Textcube가 훨씬 좋아뵘 (사용자 커뮤니티의 크기가 일단; 물론 비설치형 블로그는 빼놓고 하는 소리지만)
저도 DokuWiki 에서 WordPress 로 갈아탔습니다. 설치 다 하고 나니 곧 2.3 이 나온다는걸 알았지만 … 뭐 그건 그때 가서 업글하기로 하고[..] 그런데 위키에서 예전 포스팅들 가져오려고 하는데 이런 경우에도 쉽게 가져오는 방법이 있을까요? 단순히 지난 날짜로 포스팅 할 수 있게만 되어도 좋겠는데 말이죠.
그리고 군주님 포스팅의 “계속 읽기:” 같은 폴딩은 따로 플러그인을 사용하시는건지 궁금하네요. 찾아보니 evermore 같은 비슷한 플러그인은 있는거 같은데 확실치 않아서요.
그게 플러그인이 아니라, 기본으로 제공되는 WYSIWYG 에디터에서 수평선…처럼 생긴 아이콘(Ctrl+Shift+t)을 클릭하거나 를 입력하면 거기서 접힘;
( 다만 태터툴즈의 접기 개념이 아니라 RSS 피드와, 여러 포스팅 뷰에서 보이는 거에서 짧게 보여준다의 느낌이라 한 포스팅에 1번만 사용 가능)
저 문장이 언어팩 깔아야나오는데 한글 언어팩은 2.2던가까지밖에 없어서 난 그냥 테마파일을 직접 고쳐서(…..) “Read more: 포스팅 제목”으로 나오던 걸 “계속읽기: 포스팅 제목”으로 바꿨지;