안녕하세요, 욱산(旭山)입니다.
워드프레스 프리미엄 요금제를 기반으로 jungyong.com을 운영해 오며, 많은 분들께서 블로그의 깔끔한 구성과 멤버십 운영 방식에 대해 문의를 주셨습니다. 워드프레스는 무한한 확장성을 자랑하지만, 무거운 플러그인을 남발하면 사이트 속도가 저하되는 치명적인 단점이 있습니다.
따라서 저는 무거운 플러그인 대신, 가벼운 ‘코드 스니펫(Snippet)’을 테마의 functions.php에 직접 적용하여 꼭 필요한 기능만 최적화해 사용하고 있습니다. 오늘은 지식 기반의 멤버십 블로그를 운영하시는 분들께 실질적인 도움이 될 만한, 정중용덕의 핵심 스니펫 운영 노하우를 공유하고자 합니다.
1. 프리미엄 콘텐츠 보호: 비회원 열람 제한 및 카피 방지
심도 있는 칼럼이나 고전 번역 등, 공들여 작성한 지식 재산권을 보호하고 프리미엄 멤버십(이너서클)의 가치를 유지하기 위한 필수 장치입니다.
- 비회원 콘텐츠 보기 제한 (Content Restriction): 워드프레스의 조건부 태그인
is_user_logged_in()함수를 활용한 스니펫입니다. 특정 카테고리나 태그가 지정된 글의 경우, 비회원이 접근하면 본문 내용 대신 “이 콘텐츠는 이너서클 멤버 전용입니다. 로그인 후 열람해 주세요.”라는 커스텀 메시지와 함께 로그인/가입 페이지 버튼을 출력하도록 설계했습니다. - 비회원 카피 방지 (Copy Protection): 자바스크립트 우클릭 방지 플러그인을 쓰면 사이트가 무거워집니다. 대신, 비회원 상태일 때만 CSS의
user-select: none;속성과 간단한 JS 스니펫이 문서 헤더에 로드되도록 분기 처리했습니다. 회원들에게는 자유로운 텍스트 드래그를 허용하되, 비회원의 무단 복제만 가볍고 깔끔하게 막아냅니다.
2. 장기 프로젝트의 시각화: ‘황제내경 영추’ 번역 진척도 사이드바
연재형 콘텐츠를 작성하는 블로거라면 반드시 적용해 볼 만한 노하우입니다. 현재 저는 소문(素問) 81편 완역에 이어, 영추(靈樞) 번역이라는 긴 여정을 진행 중입니다. 이를 독자들과 직관적으로 공유하기 위해 커스텀 사이드바 위젯 스니펫을 작성했습니다.
- 구현 원리:
wp_count_posts()함수를 응용하여, ‘영추 번역’ 카테고리에 발행된 글의 개수를 불러옵니다. 이를 전체 목표 편수인 ’81’로 나누어 백분율(%)로 환산한 뒤, HTML/CSS 프로그레스 바(Progress Bar) 형태로 사이드바에 출력하는 숏코드(Shortcode) 스니펫입니다. - 기대 효과: 매번 수동으로 숫자를 바꿀 필요 없이 글을 발행할 때마다 진척도가 자동 갱신되며, 방문자들에게 프로젝트의 스케일과 꾸준함을 시각적으로 증명할 수 있습니다.
3. 직관적인 소통 창구: 최신 공지글 사이드바 노출
중요한 안내 사항이 블로그 글 목록 뒤로 밀려나 독자들이 놓치는 일을 방지하기 위한 스니펫입니다.
- 구현 원리: 기본 제공되는 최신 글 위젯 대신,
WP_Query를 활용해 오직 ‘공지사항’ 카테고리의 가장 최근 글 1~2개만 불러오는 가벼운 커스텀 위젯을 스니펫으로 만들었습니다. 여기에 눈에 띄는 CSS 스타일을 입혀 사이드바 최상단에 고정함으로써, 멤버십 관련 공지나 주요 소식이 즉각적으로 전달되도록 했습니다.
맺으며: 기술은 콘텐츠를 섬겨야 합니다
제가 사용하는 이 스니펫들은 복잡하고 화려한 기능이 아닙니다. 오히려 ‘군더더기를 덜어내고, 콘텐츠의 본질과 독자의 편의에 집중한다’는 철학을 기술적으로 구현한 것에 불과합니다.
워드프레스 운영에 정답은 없지만, 플러그인의 늪에 빠져 사이트가 무거워지고 있다면 오늘 공유해 드린 스니펫 활용법을 통해 블로그의 뼈대를 가볍고 단단하게 재설계해 보시길 권해드립니다.
올해 상반기 내내 블로그를 회원제로 운영하기 위해 많은 노력을 쏟았습니다. 이제 거의 회원제 사이트로의 전환을 이뤄냈다고 생각합니다. 물론 결제부분은 아직 미흡한게 사실이지만 이 부분도 차차 개선해 나갈 생각입니다. 프리미엄 요금제하에서는 어느 정도 제약을 탈피할 수 없기 때문에 가급적이면 올해안에 비즈니스 요금제로 업그레이드해서 날개를 달 생각입니다.