알림: 본 블로그는 'Clear Type'이 적용된 '맑은 고딕'글꼴을 사용합니다. 링크를 클릭하여 글꼴을 설치하시고 CT을 적용하세요.



이 블로그의 스팸관리 정책의 가장 큰 부분은 Akismet을 사용한 스팸블록입니다. 이 플러그인은 워드프레스 자체에서도 기본으로 포함되어 있는 유명한 녀석이라 다들 잘 아실거죠. (혹시나 모르시면 여기를 참고하세요)

왠만한 스팸은 다 분류를 해서 꽤 쓸만합니다만, 문제는 등록되는 스팸량이 좀 되더라구요. 요즘은 좀 줄긴 했지만 지금까지 차단한 스팸 수가 23,395개 정도 되니 만만한 수는 아니죠. 그래서 스팸 수를 좀 줄여 볼까 스팸정책을 조금 손을 봤습니다.

1. Akismet, 2. 첫 코멘트 관리자 승인, 3. 일정기간 지난 코멘트 비활성화

그래서 위과 같이 3개의 스팸 정책을 활용하기로 했고, 3번째의 코멘트 비활성화 정책이 이번에 추가한, 지금 이야기 하는 부분입니다.

Comment Timeout 플러그인

먼저 이 정책은 플러그인을 활용하는 정책입니다. 간단한 플러그인입니다. 다운 받아 설치 하고, 활성화 시키고 나면, 얼마 지난 코멘트를 닫을 것인지 Option을 줄 수 있고, 옵션에 따라서 코멘트가 동작합니다.

기본 옵션은 120일, 인기글의 경우 1년입니다. 인기글의 기준도 정할 수 있는데 기본은 20개의 코멘트가 달린 글이 됩니다.

플러그인 활성화 후 스킨 수정

플러그인의 옵션을 취향에 맞추어 변경 후 활성화 시키면 닫힌 코멘트에 대해서는 아무것도 나타나지 않을 겁니다. (스킨에 따라 나타날 수 있습니다.) 생뚱맞게 그냥 없으면 보기가 않좋기에 스킨을 약간 바꿔주는 것이 좋습니다.

1
2
3
4
5
<?php if (($comments) or ('open' == $post-> comment_status)) { ?>
 
코멘트가 어쩌구 저쩌구...
 
<?php endif; ?>

스킨의 comments.php나 기타 코멘트 관련 파일을 보면 대충 위와 같은 구조를 가지게 됩니다. (만약 저런 if구조가 없다면 십중팔구 닫힌 코멘트임에도 그냥 코멘트 관련 부분이 출력이 될겁니다.) 코멘트가 열려 있다면 출력하라는 구조인데 ‘어쩌구 저쩌구’ 부분을 다음과 같이 만듭니다.

1
2
3
4
5
6
7
8
9
<?php if (($comments) or ('open' == $post-> comment_status)) { ?>
 
코멘트가 열려 있을 때 어쩌구 저쩌구...
 
<?php } else { ?>
 
코멘트가 닫혀  있을 때 어쩌구 저쩌구...
 
<?php endif; ?>

간단한 if-else절로 포스트를 더 보기 좋게 하는 것이죠. 이건 코멘트 출력 부분이고, 입력 부분도 위와 같이 한번 바꿔주는게 좋습니다.

대충 눈치 채셨겠죠? if (($comments) 나 if (’open’ == $post-> comment_status)에 else절을 사용해서 구분을 나눠주면 간단히 상황에 따라 다른 스킨을 출력하게 됩니다.

덧붙여서…

정확히 이야기 하자면 위의 구문들이 기간이 지나 비활성화된 코멘트를 구분하는 것은 아닙니다. 단순히 코멘트가 열려있나 닫혀 있나를 판단하는 것이라서 옵션에서 전체 코멘트를 닫아 버려도 else로 나눠놓은 부분이 실행 될 겁니다. 그런데 옵션에서 전체 코멘트를 닫아놨다면, Comment Timeout 자체가 의미가 없는 것이라서, 간단히 저 구문을 활용해도 무방할 것입니다. 플러그인을 쓰면서 전체를 닫을 리는 없으니까요.

위의 if-else문은 comments.php말고 블로그 전체에 활용할 수 있으니 메인 페이지에 코멘트 수를 표시하는 부분에도 사용할 수 있습니다.

플러그인 자체 소개나 정책의 의미 설명보다는 누구나 할 수 있는 꼼수에 관한 포스트가 되었네요. 언제나 처럼 관련의견 의견 환영합니다. 그럼…

포스트가 유익했다면 구독 어떠세요? ( Subscribe in a reader | Add to Google Reader or Homepage | 한RSS에 추가 )




알림 @ “일정기간 지난 포스트의 코멘트 닫기”

  1. 1 park   Korea (South) 

    *** 알림 *** (english)

    스팸방지 정책상 일정기간이 지난 포스트에 대해 의견등록이 중지됩니다. 모든 트랙백과 핑백 등록 역시 중지 됩니다. 불편을 끼쳤다면 사과드립니다.

    혹시나 이 포스트에 의견이 있으시면 contact메뉴의 전자우편을 활용해 주시길 부탁드립니다.

의견 닫힘

포스트의 작성자와 의견교환이나 연락이 필요하시면,
여기를 클릭하셔셔 전자우편을 보내주세요.