同心聲氣默猶通
이 블로그의 스팸관리 정책의 가장 큰 부분은 Akismet을 사용한 스팸블록입니다. 이 플러그인은 워드프레스 자체에서도 기본으로 포함되어 있는 유명한 녀석이라 다들 잘 아실거죠. (혹시나 모르시면 여기를 참고하세요)
왠만한 스팸은 다 분류를 해서 꽤 쓸만합니다만, 문제는 등록되는 스팸량이 좀 되더라구요. 요즘은 좀 줄긴 했지만 지금까지 차단한 스팸 수가 10,464개 정도 되니 만만한 수는 아니죠. 그래서 스팸 수를 좀 줄여 볼까 스팸정책을 조금 손을 봤습니다.
1. Akismet, 2. 첫 코멘트 관리자 승인, 3. 일정기간 지난 코멘트 비활성화
그래서 위과 같이 3개의 스팸 정책을 활용하기로 했고, 3번째의 코멘트 비활성화 정책이 이번에 추가한, 지금 이야기 하는 부분입니다.
먼저 이 정책은 플러그인을 활용하는 정책입니다. 간단한 플러그인입니다. 다운 받아 설치 하고, 활성화 시키고 나면, 얼마 지난 코멘트를 닫을 것인지 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말고 블로그 전체에 활용할 수 있으니 메인 페이지에 코멘트 수를 표시하는 부분에도 사용할 수 있습니다.
플러그인 자체 소개나 정책의 의미 설명보다는 누구나 할 수 있는 꼼수에 관한 포스트가 되었네요. 언제나 처럼 관련의견 의견 환영합니다. 그럼…
댓글 없음 @ “일정기간 지난 포스트의 코멘트 닫기”
댓글을 남겨 주세요.
댓글 남기기
(댓글 등록중...)