사용자 권한 - 사용자 역할에 대한 코드 트리거 (WordPress)
-
20-09-2019 - |
문제
PHP에서 사용자 정의 플러그인을 개발하고 있으므로 기존 플러그인을 사용할 수 없습니다. 내가 달성하고 싶은 것은 일부 사용자의 게시물 내에 다른 URL을 표시하고 싶다는 것입니다. WordPress에 등록 된 사용자의 경우 저에게 연락하여 '승인'됩니다. 이 필드를 조건에서 사용할 수 있도록이 추가 사용자 프로필 필드를 설정하고 싶습니다. 따라서이 필드가 없거나이 필드에서 올바른 값이없는 손님과 사용자는 URL1이지만 다른 사람은 URL2를 얻습니다.
요구 사항
- 관리자 역할을 가진 사용자 만
- 추가 사용자 프로필 필드를 작성/편집 할 수 있습니다
- 다른 모든 사용자를 위해
WordPress에서 추가 사용자 프로파일 필드를 추가 할 수있는 방법을 알고 있지만 (아래 링크 참조) 주어진 역할에서 해당 필드를 사용자에게 제한하는 방법과 관리자 역할을 가진 사용자가 제출 한 사용자 역할을 작성/편집 할 수있는 방법을 모르겠습니다. 모든 사용자들. WordPress Dashboard/Users/New Users 및/또는 Dashboard/Users/Authors & Ouser에서 새 코드를 추가 해야하는 것 같습니다.
Google 검색을 수행했는데 추가 사용자 프로필 필드를 추가하는 방법에 대한 사이트가 거의 없습니다.
그것은 나에게 보인다 사용자 정의 사용자 프로필 필드 추가 및 사용 거의 내가하고 싶은 일이지만 여전히 "유일한 관리자"가 그렇게 할 수있는 방법을 모릅니다.
해결책
이건 어때:
$ID="2";
$user = new WP_User($ID);
if ($user->wp_capabilities['administrator']==1) {
//code here
}
이 링크를 참조하십시오 WordPress의 사용자 기능
그래서 위의 내용과 당신이 준 링크는 다음과 같습니다.
function my_show_extra_profile_fields( $user ) {
if ($user->wp_capabilities['administrator']!=1) {
return false;
} ?>
<h3>Extra profile information</h3>
<table class="form-table">
<tr>
<th><label for="twitter">Twitter</label></th>
<td>
<input type="text" name="twitter" id="twitter" value="<?php echo esc_attr( get_the_author_meta( 'twitter', $user->ID ) ); ?>" class="regular-text" /><br />
<span class="description">Please enter your Twitter username.</span>
</td>
</tr>
</table>
<?php }
제휴하지 않습니다 StackOverflow