WordPress에서 게시물 발행 전 확인 메시지 추가하는 방법
문제와 이유
블로거들은 빠르게 글을 올리려다 실수로 ‘발행’ 버튼을 눌러 글이 미완성 상태로 공개되는 상황을 겪을 수 있습니다. 이런 실수는 독자 경험을 해치고, 이메일 구독자에게 미완성 글이 발송되거나 소셜 미디어에 공유되어 혼란을 초래할 수 있습니다. 검색 엔진 최적화(SEO) 관점에서도 완성되지 않은 콘텐츠는 품질 저하로 이어질 수 있습니다.
중요: 발행 확인 대화상자는 실수로 인한 즉시 공개를 방지하는 간단하지만 효과적인 안전장치입니다.
옵션 요약
- 빠르고 쉬운 방법: 무료 플러그인 사용(설정 불필요)
- 가벼운 방법: 테마의 functions.php나 사이트 전용 플러그인에 간단한 코드 추가
플러그인 사용(간단한 방법)
가장 쉬운 방법은 Confirm Publishing Actions라는 무료 플러그인을 설치하는 것입니다. 이 플러그인은 발행, 업데이트, 삭제 시 확인 메시지를 띄워 실수로 작업을 진행하지 못하도록 합니다.
설치 방법 요약:
- 워드프레스 관리자 화면 > 플러그인 > 새로 추가에서 “Confirm Publishing Actions” 검색 후 설치 및 활성화
- 혹은 ZIP 파일을 wp-content/plugins 폴더에 업로드한 뒤 관리자에서 활성화
플러그인 특징:
- 별도 설정이 없는 경우가 많아 설치 후 즉시 동작
- 코드 수정 없이 안전장치 추가 가능
참고: 플러그인이 활성화되어도 특정 테마나 다른 플러그인과 충돌하는 경우가 있습니다. 설치 후 간단한 테스트를 진행하세요.
코드 스니펫 추가(플러그인 없이 가벼운 방법)
플러그인을 추가하고 싶지 않다면, 테마의 functions.php 파일이나 사이트 전용 플러그인에 아래 코드를 붙여 넣어 확인 메시지를 구현할 수 있습니다. 코드 수정 전에는 항상 백업을 권장합니다.
function add_publish_confirmation() {
$confirmation_message = "게시물을 공개하시겠습니까?";
echo "\n";
}
add_action('admin_footer','add_publish_confirmation');사용 방법:
- 위 코드를 테마의 functions.php 파일 끝부분(자식 테마 권장)에 붙여넣고 저장하세요.
- 메시지를 바꾸고 싶다면 2번째 줄의 $confirmation_message 내용을 한 줄로 수정하세요.
- 새 편집기(Gutenberg)나 다른 커스텀 에디터에서는 버튼 ID나 클래스가 다를 수 있으므로 필요 시 선택자(‘#publish’)를 조정해야 합니다.
중요: 이 스니펫은 관리 화면에서 jQuery를 사용합니다. jQuery가 비활성화되어 있거나 편집기에서 버튼 구조가 다르면 동작하지 않을 수 있습니다.
언제 이 방법들이 통하지 않을 때와 해결책
- 블록 편집기(Gutenberg)의 새 publish 버튼은 다른 클래스나 이벤트를 사용합니다. 해결책: 브라우저 개발자 도구로 실제 버튼 셀렉터를 확인한 뒤 스니펫의 선택자를 조정하세요.
- 자바스크립트가 관리자 화면에서 차단된 경우: 스니펫이 실행되지 않으므로 플러그인 사용을 고려하세요.
- 다중 편집 워크플로우(편집자·기고자 권한)에서 자동화 알림이 있는 경우: 역할별 테스트를 통해 부작용을 확인하세요.
테스트 체크리스트
- 관리자 계정으로 로그인 후 새 글 작성 화면에서 발행 버튼 클릭 시 확인 팝업이 표시되는가?
- 취소를 누르면 게시물이 공개되지 않는가?
- 퍼블리시 외의 버튼(저장, 미리보기 등)에 영향이 없는가?
- 편집자/저자 등 다른 권한 사용자로도 동작하는가?
- 사이트의 다른 플러그인(특히 캐시/관리용 플러그인)과 충돌하지 않는가?
문제 해결(롤백 & 디버깅)
- 작동하지 않으면 functions.php에 붙여넣은 코드 앞뒤로 문법 오류가 없는지 확인하세요. PHP 오류가 발생하면 사이트가 관리자 화면에서 에러를 낼 수 있습니다.
- 관리자 화면에서 자바스크립트 콘솔(개발자 도구)을 열어 오류 여부를 확인하세요.
- 문제가 계속되면 해당 코드를 주석 처리하거나 삭제하면 기능이 원상복구됩니다.
- 플러그인 사용 시 문제가 생기면 플러그인을 비활성화해 원인을 좁히세요.
대체 접근법 및 고급 팁
- 역할 기반 접근: 특정 역할(예: 기고자)에게만 확인창을 띄우려면 add_publish_confirmation 함수 안에서 current_user_can() 함수를 사용해 조건부로 동작시킬 수 있습니다.
- 사이트 전용 플러그인으로 관리: 여러 테마를 사용하는 경우 functions.php가 아닌 사이트 전용 플러그인에 넣으면 유지관리가 편합니다.
- 서버 사이드 보호: 클라이언트 스크립트가 차단되는 극단적인 환경에서는 게시물 상태 체크(예: 예정된 날짜가 아닌가, 내용 길이가 짧지는 않은가 등)를 서버 측에서 검증하는 추가 로직을 구현하세요.
간단한 체크리스트(역할별)
- 관리자: 플러그인 설치 및 전체 테스트 담당
- 개발자/운영자: functions.php 백업 및 코드 적용 담당
- 에디터/콘텐츠팀: 게시 테스트 및 사용자 안내 문구 검토 담당
참고: 위 모든 변경 전에는 항상 전체 사이트 백업을 권장합니다.
결론
발행 전 확인 메시지는 간단한 조치지만 실수로 인한 게시물 공개, 독자 혼란, 구독자에게 미완성 콘텐츠 발송 등을 예방하는 데 효과적입니다. 플러그인으로 간단히 해결하거나, 코드로 가볍게 구현하는 두 가지 방법 중 상황에 맞는 방법을 선택하세요.
요약:
- 가장 쉬운 방법: Confirm Publishing Actions 플러그인 설치
- 가벼운 방법: functions.php에 스니펫 추가
- 테스트와 백업은 필수
중요: 문제가 발생하면 코드를 주석 처리하거나 플러그인을 비활성화하면 원래 상태로 되돌릴 수 있습니다. 궁금한 점이나 적용 중 문제가 있으면 댓글로 문의하세요.