<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
	<channel>
				<title><![CDATA[[공유] 유저별, 권한별로 페이지 접근제한 방법 정리]]></title>
		<link>https://www.cosmosfarm.com/threads/rss/document/47482</link>
		<description><![CDATA[<p>안녕하세요.</p>

<p>워드프레스 저변이 국내에서는 아직 그렇게까지는 넓지가 않은 지 뭐하나 찾으려면 매우 어렵습니다.</p>

<p>제가 찾았던 내용들 보면 전부 단편적으로 기술되어 종합적으로 그걸 왜 그렇게 해야하는지 여기서 뭘 바꾸면 되는지 상세하게 설명된 케이스를 보지를 못했습니다.</p>

<p>이 글은 제가 경험한 내용 중 가입 유저별 또는 권한별로 페이지 접근을 제한하는 방법을 공유하고자 정리해 드립니다.</p>

<p>여기저기 무슨 플러그인이 좋다 이거 쓰면 된다 저거 쓰면 된다 말들은 많은데 내용 찾다보면 유료버전을 사야한다던가 내용이 대충 나와 있던가 너무 머리가 아픕니다.</p>

<p>여기서는 그냥 깔끔하게 님이 직접 몇 줄 코딩하는 것으로 끝냅니다.</p>

<p> </p>

<p>먼저 wp-admin 페이지의 좌측 메뉴에서 테마 디자인 &gt; 테마 편집기를 여신 다음에</p>

<p>화면 우측의 테마 파일 중에 위에서 두번 째 있는 테마 함수(fuctions.php) 클릭</p>

<p>테마 편집이라고 하얀 바탕에 글자들이 적혀있는데 슬라이드 끌어내려서 맨 밑으로 갑니다.</p>

<p>그리고 맨 밑에 클릭하고 Enter 이후에는 아래 케이스에 맞춰 작성합니다.</p>

<p>1. 유저별로 페이지 제한</p>

<p>    - 먼저 각 페이지의 id를 알아야 합니다. wp-admin 페이지 메뉴인 페이지 &gt; 모든 페이지를 클릭하시고 거기 나오는 것들 중에 내가 제한하고자 하는 페이지를 클릭하시면</p>

<p>       https://xxxx.com/wp-admin/post.php?post=133&amp;action=edit 이런 URL을 보실 수 있는데 여기서는 133이 이 페이지 id입니다.</p>

<p>   - 제한할 페이지 id를 엑셀에 정리하세요. 다음으로 각 페이지별로 제한을 할 유저 id(사용자 &gt; 모든 사용자 클릭하면 나오는 사용자명)을 엑셀의 페이지 id 옆에 정리하세요.</p>

<p>   아래 코드를 그대로 복사 붙여넣기 하신 후 ID 번호와 Page_id만 변경하시면 됩니다. Page가 많으시다면 elseif에 있는 is_page(array(1,2,3,4,5,...))을 사용하세요.</p>

<p>   is_page() 함수는 현재 페이지를 반환받아 array에 있는 id와 비교합니다. $page_id를 받을 필요도 없고요.</p>

<pre>
<code>​add_filter('the_content', 'page_restrict');
function my_page_restriction($content){
	$user = wp_get_current_user();
	$page_id = get_the_ID();
	
	if(($user-&gt;ID == '1' and $page_id == '1')){
		?&gt;
		&lt;script&gt;
		alert('권한이 없습니다.');
		window.history.go(-1);
		&lt;/script&gt;
		&lt;?php
		exit;
	}
    elseif(($user-&gt;ID == '2' and is_page(array(2,3,4,5)){
		?&gt;
		&lt;script&gt;
		alert('권한이 없습니다.');
		window.history.go(-1);
		&lt;/script&gt;
		&lt;?php
		exit;
	}
	return $content;
}
​</code></pre>

<p> </p>

<p>2. 제한할 페이지도 많고 유저별로 하려니 반복문이 한도없이 길어진다고요? 그럼 다음 방법으로 유저를 그룹으로 묶으세요. </p>

<p>플러그인 User Role Editor를 설치하시면 오른쪽에 Update 버튼 아래로 Add Role/Rename Role/Add Capability/Delete Role/Delete Capability 메뉴가 있습니다.</p>

<p>Add Role을 클릭하면 팝업창이 나타납니다. 거기에 Role name을 넣어서 생성하세요. Role name (ID)라고 되어 있으니 구분하기 좋은 영어로 넣어야겠죠?</p>

<p>하여간 New Role들을 생성하셨으면 그 Role이 할 수 있는 기능으로 Add Capability를 클릭해서 page_restrict라고 생성하세요. New Role에 기능으로 추가한 Capability를 설정하시는 건 당연하겠죠?</p>

<p>하나를 만들고 나면 Add New Role에 copy 기능도 있어요 ㅎ</p>

<p>그런 다음 아래의 코드를 복사하여 붙여 넣으시고 current_user_can('') 안의 ' ' 부분을 생성하신 Role name으로 is_page(array(1,2,3,4,...))의 숫자를 해당하는 id로 바꾸시고 elseif를 필요한 수만큼 늘리면</p>

<pre>
<code class="language-php">/** 
 *  restrict page for user role editor
*/
add_filter('the_content', 'page_restrict');
function page_restrict($content){
	if(current_user_can('illegal') and is_page(array(118,121,123,125,127,129,131,133))){
		?&gt;
     	&lt;script&gt;
	 	alert('권한이 없습니다!!! 관리자에게 문의하세요');
	 	window.history.go(-1);
	 	&lt;/script&gt;
     	&lt;?php
	 	exit;
	}
	elseif(current_user_can('intellectual-r') and is_page(array(98,121,123,125,127,129,131,133))){
		?&gt;
     	&lt;script&gt;
	 	alert('권한이 없습니다!!! 관리자에게 문의하세요');
	 	window.history.go(-1);
	 	&lt;/script&gt;
     	&lt;?php
	 	exit;
	}
	return $content;
}</code></pre>

<p>끝.</p>

<p>제가 구글링하고 적용해보고 하다하다 안되서 이곳에 문의해보고 되는 것을 확인하고 다시 코드 변경해서 성공시킨 내용을 정리해 보았습니다.</p>

<p>저와 같은 상황에 닥치신 분들께서 이글을 쉽게 찾아내셔서 고생 안하시길 기원합니다. 모두에게 행운을...</p>]]></description>
		<copyright>Copyright 2026, 코스모스팜</copyright>
				<item>
			<title><![CDATA[좋은 정보 감사드립니다????]]></title>
			<link>https://www.cosmosfarm.com/threads/document/52790</link>
			<description><![CDATA[<p>좋은 정보 감사드립니다????</p>]]></description>
			<author>솔우</author>
			<pubDate>Fri, 14 May 2021 09:16:09 +0000</pubDate>
			<category>워드프레스</category>
		</item>
				<item>
			<title><![CDATA[말씀하신 새로운 문서의 접근은 어떤 것을 말씀하시는 건지요?

좀 더 구체적인 상황을 설명해주시겠어...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/52732</link>
			<description><![CDATA[<p>말씀하신 새로운 문서의 접근은 어떤 것을 말씀하시는 건지요?</p>

<p>좀 더 구체적인 상황을 설명해주시겠어요?</p>

<p>고맙습니다.</p>]]></description>
			<author>스레드봇</author>
			<pubDate>Thu, 13 May 2021 00:05:38 +0000</pubDate>
			<category>워드프레스</category>
		</item>
				<item>
			<title><![CDATA[페이지 아이디가 아니라..

새로운 문서의 접근을 제한 하려면 어떻게 해야하나요?]]></title>
			<link>https://www.cosmosfarm.com/threads/document/52725</link>
			<description><![CDATA[<p>페이지 아이디가 아니라..</p>

<p>새로운 문서의 접근을 제한 하려면 어떻게 해야하나요?</p>]]></description>
			<author>성준님</author>
			<pubDate>Wed, 12 May 2021 09:14:13 +0000</pubDate>
			<category>워드프레스</category>
		</item>
				<item>
			<title><![CDATA[안녕하세요~^^

플러그인을 사용하지 않고 페이지를 제한하는 코드 공유해 주셔서 고맙습니다.

 

2번 ...]]></title>
			<link>https://www.cosmosfarm.com/threads/document/47491</link>
			<description><![CDATA[<p>안녕하세요~^^</p>

<p>플러그인을 사용하지 않고 페이지를 제한하는 코드 공유해 주셔서 고맙습니다.</p>

<p> </p>

<p>2번 내용의 경우에는 코스모스팜 회원관리 플러그인의 페이지 제한 기능을 사용하시면</p>

<p>별도의 코드 추가 없이 페이지 제한을 하실 수 있습니다.</p>

<p>페이지 제한 관련해서는 아래 링크를 참고 부탁드립니다.</p>

<p><a href="https://blog.naver.com/PostView.nhn?blogId=chan2rrj&amp;logNo=221244145637" target="_blank">워드프레스 회원만 볼 수 있는 페이지 설정하기</a></p>

<p><a href="https://blog.naver.com/PostView.nhn?blogId=chan2rrj&amp;logNo=220924449774" target="_blank">워드프레스 페이지 접근 제한 기능 소개</a></p>

<p>고맙습니다.</p>]]></description>
			<author>스레드봇</author>
			<pubDate>Thu, 29 Oct 2020 00:07:12 +0000</pubDate>
			<category>워드프레스</category>
		</item>
			</channel>
</rss>