일시적으로 워드프레스 사이트 서비스 중지를 알리는 더 간단한 방법

사이트 작업할 때 공사중 페이지를 플러그인 없이 구현하는 내용을 플러그인 없이 워드프레스 공사 중 페이지 만들기 글에 소개하였는데, 그 내용은 보통 사이트를 아직 완전히 구성하지 않은 단계에서 해볼 수 있는 보통의 ‘공사중 페이지’ 방법입니다.

사이트를 운용 중에 사용해도 되지만, 여러 사람이 콘텐츠를 등록할 때 비회원 방문자와 검색엔진에 일시적인 서비스 중지를 알리고 회원은 접근 가능하여 콘텐츠를 등록할 수 있어야 하는 상황도 때로 있습니다.

아래 코드 정도면 이러한 상황을 처리하는 데에 충분할 거 같습니다.

add_action( 'get_header', 'mysite2121_maintenance_mode' );
function mysite2121_maintenance_mode(){
    if( ! current_user_can('moderate_comments') || !is_user_logged_in() ) {
		wp_die(
			'<h1 style="color:black;margin-bottom: 1em; padding-bottom: 1em">잠깐 점검하고 있습니다.</h1><p>더 좋은 환경을 위해 작은 문제를 해결하고 있습니다. 빨리 서비스를 사용할 수 있도록 하겠습니다.</p>',
			'잠깐접근제한',
			array(
				'response' => 503,
				'back_link' => true
			)
		);
    }
}

가입제 사이트가 아니라고 가정하여 is_user_logged_in 조건 추가, 로그인한 회원 중에 editor Role 이상 접근 가능한 설정을 위해 moderate_comments capability 를 사용할 수 있습니다.

moderate_comments capability는 editor, administrator Role만 (기본으로) 가지고 있습니다.

functions.php 또는 기타 코드 추가 가능한 곳에 추가하면 됩니다.

가입제 사이트가 아니기에 get_header 훅이 아니라 template_redirect 훅으로 로그인 전 상태에서 로그인 페이지로 이동(Redirect)하거나 다른 안내 페이지를 만들어 그 페이지로 이동하도록 할 수 있습니다.

그런데, 일시적인 서비스 중지임을 검색엔진에 알리는 것이 필요할 수 있으므로 소개한 코드 정도면 충분할 거에요.

댓글 1

  1. 제가 원했던 것과 똑같이 됩니다. 글자는 좀 바꿧는데 정말 고맙습니다.