> CMS 튜토리얼 > Word누르다 > WordPress 역할 및 기능 마스터 링

WordPress 역할 및 기능 마스터 링

Christopher Nolan
풀어 주다: 2025-02-16 11:49:08
원래의
360명이 탐색했습니다.

WordPress 사용자 관리 : 역할 및 권한에 대한 심층 분석 WordPress의 사용자 관리 시스템은 역할과 권한을 기반으로합니다. 역할은 고유 한 이름과 일련의 권한을 포함하는 엔티티이며, 각각은 해당 역할의 플랫폼 별 기능에 대한 액세스 수준을 정의합니다. WordPress 역할 및 권한의 작동 메커니즘을 파헤쳐 봅시다.

키 포인트

WordPress의 사용자 관리는 역할과 권한을 기반으로합니다. 역할에는 역할을 통해 플랫폼의 다른 기능에 대한 액세스 수준을 정의하는 고유 한 이름과 권한 세트가 있습니다.

WordPress는 역할과 권한을 사용자 정의하기위한 포괄적 인 API를 제공합니다. , ,

및 와 같은 함수를 사용하여 역할 및 권한을 관리 할 수 ​​있습니다. 그러나 이러한 기능을 사용할 때는 데이터베이스 액세스 및 성능에주의를 기울여야합니다.
  • 역할과 권한을 다룰 때 데이터베이스 문제를 피하는 몇 가지 방법이 있습니다. 한 가지 방법은 플러그인이 활성화 된 경우에만 코드를 트리거하는 것입니다. 또 다른 방법은
  • 글로벌 변수를 설정하여 WordPress 데이터베이스를 우회하는 것입니다.
  • add_role() 장면 메커니즘으로 돌아 가기 remove_role() 역할 스토리지 add_cap() 기본 역할 및 권한 목록은 WordPress Codex에서 사용할 수 있습니다. remove_cap() 데이터베이스는이 목록을
  • 테이블에 저장합니다.
  • 직렬화 된 키를 사용합니다. register_activation_hook() 사형화 된 데이터는 다음과 같습니다 $wp_user_roles 이 메타 데이터는 새 WordPress 사이트가 설치 될 때 자동으로 설정됩니다.
  • WordPress가 시작되면 클래스가 데이터베이스에서 목록을로드합니다. 이것은

    후크 사이에서 발생합니다.

    사용자를 역할로 연결하십시오 WordPress는

    테이블에 저장되어 사용자를 자신의 역할에 연결합니다.

    사막화 후, 메타 데이터는 다음과 같습니다

    는 WordPress가 배열을 사용하지만 사용자는 한 번에 하나의 역할을 할 수 있지만 나중에 이유를 알 수 있습니다. <p> 또한, <code>wp_options</code>는 현재 블로그의 접두사입니다. </p> <get> ( 함수를 사용하여 얻을 수 있음). <p> <i> 다중 사이트 설치에서 사용자는 다른 사례에서 다른 역할을 사용할 수 있습니다. <code>wp_user_roles</code> </i></p> = & gt; <p> = & gt; <img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173967775148011.jpg" class="lazy" alt="Mastering WordPress Roles and Capabilities "> = & gt; </p> <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><code>array( 'administrator' => array( 'name' => '管理员', 'capabilities' => array( 'switch_themes' => true, 'edit_themes' => true, 'activate_plugins' => true, 'edit_plugins' => true, 'edit_users' => true, // [...] ) ), 'contributor' => array( 'name' => '投稿者', 'capabilities' => array( 'delete_pages' => true, 'delete_others_pages' => true, 'delete_published_pages' => true, 'delete_posts' => true, // [...] ) ), // [...] );</code>
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사

    이 규칙은 우리가

    테이블에서 본 항목에도 적용됩니다.

    마지막으로, 우리는

    메타 데이터와 역할을 볼 수 있습니다. wp_user_level 는 이전 버전의 WordPress의 문자를 다루는 데 사용되며 이제는 더 이상 사용되지 않습니다.

    핵심 코드에서 권한을 사용하십시오 우리는 역할이 어떻게로드되고 사용자에게 연결되어 있는지 배웠습니다.

    일부 기본 권한은 WordPress 핵심 코드에서 하드 코딩됩니다.

    예를 들어, 플러그인 화면이로드되면 다음 코드를 실행하여 현재 사용자가 플러그인을 관리 할 수 ​​있는지 확인합니다.

    역할은 결코 하드 코딩되지 않습니다. 역할은 데이터베이스에만 존재합니다.

    역할 및 권한 사용 : WordPress API Access Api

    WordPress는 역할을 처리하는 데 도움이되는 다음과 같은 글로벌 기능을 제공합니다.

    현재 사용자가 필요한 권한이 있는지 확인하십시오.

    <code>array(
        'administrator' => array(
            'name'         => '管理员',
            'capabilities' => array(
                'switch_themes'          => true,
                'edit_themes'            => true,
                'activate_plugins'       => true,
                'edit_plugins'           => true,
                'edit_users'             => true,
                // [...]
            )
        ),
        'contributor' => array(
            'name'         => '投稿者',
            'capabilities' => array(
                'delete_pages'           => true,
                'delete_others_pages'    => true,
                'delete_published_pages' => true,
                'delete_posts'           => true,
                // [...]
            )
        ),
        // [...]
    );</code>
    로그인 후 복사
    로그인 후 복사

    특정 사용자가 권한이 있는지 확인하십시오.

    우리는

    가이 함수를 사용한다는 것을 알 수 있습니다.

    는 편집 가능한 역할로 돌아갑니다.

    current_user_can() 이 목록은 필터에 의해 덮어 쓰일 수 있으므로 웹 사이트에서 전체 역할 목록을 얻기 위해이 기능에 의존해서는 안됩니다.

    후크에 아직로드되지 않았기 때문에 후크의 사용에 주목하십시오.

    <code>array(
        'administrator' => true
    )</code>
    로그인 후 복사
    로그인 후 복사

    WP_User::has_cap 슬러그를 기준으로

    객체를 얻습니다.

    <code>if (!current_user_can('activate_plugins'))
    {
        wp_die(__('您没有足够的权限来管理此站点的插件。'));
    }</code>
    로그인 후 복사

    역할에 필요한 권한이 있는지 확인하십시오. current_user_can

    Custom Api

    WordPress는 또한 역할과 권한을 사용자 정의하기위한 완전한 API를 제공합니다. get_editable_roles()

    데이터베이스에 새로운 역할을 등록하십시오.

    <code>add_action('init', function()
    {
        if (current_user_can('install_plugins'))
        {
            echo '您可以安装插件';
        }
        else
        {
            echo '您不能安装插件';
        }
    });</code>
    로그인 후 복사
    로그인 후 복사

    editable_roles 존재하는 경우 데이터베이스에서 필요한 역할을 삭제하십시오.

    admin_init init 역할에 권한을 추가하십시오.

    이것은 핵심 권한 (, get_role() 이를 통해 플러그인에 대해 최대한 많은 사용자 정의 권한을 등록 할 수 있습니다.

    WP_Role 존재하는 경우 역할에서 권한을 삭제하십시오.

    <code>add_action('init', function()   
    {
        $user = get_user_by('slug', 'admin');
        if ($user->has_cap('install_plugins'))
        {
            echo '管理员可以安装插件';
        }
        else
        {
            echo '管理员不能安装插件';
        }
    });</code>
    로그인 후 복사

    WP_Role::has_cap() 주어진 사용자에게 역할을 추가하십시오.

    이 기능을 사용하면 동일한 사용자에 대해 이론적으로 여러 역할을 설정할 수 있습니다.

    WordPress 백엔드는 사용자 당 하나의 역할 만 표시하고 관리하므로 사용자에게 여러 역할을 추가해서는 안되며 새로운 역할을 추가하기 전에 항상 <pre class="brush:php;toolbar:false"><code>add_action('admin_init', function() { $roles = get_editable_roles(); var_dump($roles); });</code>
    로그인 후 복사
    를 사용해야합니다.

    주어진 사용자로부터 역할을 제거하십시오.

    add_role()

    주어진 사용자에게 권한을 추가하십시오.

    <code>array(
        'administrator' => array(
            'name'         => '管理员',
            'capabilities' => array(
                'switch_themes'          => true,
                'edit_themes'            => true,
                'activate_plugins'       => true,
                'edit_plugins'           => true,
                'edit_users'             => true,
                // [...]
            )
        ),
        'contributor' => array(
            'name'         => '投稿者',
            'capabilities' => array(
                'delete_pages'           => true,
                'delete_others_pages'    => true,
                'delete_published_pages' => true,
                'delete_posts'           => true,
                // [...]
            )
        ),
        // [...]
    );</code>
    로그인 후 복사
    로그인 후 복사
    전체 역할을 수행하지 않고도 사용자에게 단일 권한을 추가하려는 경우 매우 유용합니다.

    Mastering WordPress Roles and Capabilities

    주어진 사용자로부터 권한을 제거하십시오.

    WP_User::remove_cap() WordPress API 의 일부 문제 하나의 질문과는 별도로, 우리가 보는 기능은 데이터베이스 액세스 및 성능이 좋아 보입니다.

    역할과 권한을 다룰 때 주로 집중하는 것은

    코드가 트리거되어야합니까?
    <code>array(
        'administrator' => true
    )</code>
    로그인 후 복사
    로그인 후 복사
    이를 설명하려면 WordPress Core 코드를 살펴 보겠습니다.

    먼저, 우리는 새로운 빈 캐릭터를 추가하고 싶습니다 :

    다음은 함수의 처음 몇 줄입니다 (실제로 로 리디렉션 됨) :

    우리가 새로운 역할을 추가하면 함수는 한 번 실행되고 아무것도하지 않습니다.

    다음, 새로 생성 된 역할에 권한을 추가하고 싶다고 가정 해 봅시다 : WordPress 4.2.2의 함수는 다음과 같습니다.

    객체를 업데이트하지만 새 권한이 이미 등록되어 있어도 코드가 실행될 때마다 데이터베이스가 업데이트 될 것임을 알 수 있습니다!

    이는 성능에 관심이 있으면 각 페이지가로드 될 때 사용자 정의 역할 및 권한을 위해 쓰는 모든 코드가 실행되지 않아야 함을 의미합니다.

    솔루션 이러한 데이터베이스 문제를 피하는 몇 가지 방법이 있습니다.

    플러그인으로 활성화 <code>if (!current_user_can('activate_plugins')) { wp_die(__('您没有足够的权限来管理此站点的插件。')); }</code> WordPress를 사용하면 플러그인 작성자가 백엔드에서 플러그인이 활성화 될 때

    기능을 사용하여 코드를 트리거 할 수 있습니다. add_role 샘플 플러그인을 만들어 봅시다 : WP_Roles::add_role 이 코드는 플러그인이 웹 사이트에서 활성화 된 경우에만 한 번만 실행됩니다.

    이제이 솔루션은 플러그인의 활성화 및 비활성화에 달려 있음을 기억해야합니다.
    <code>add_action('init', function()
    {
        if (current_user_can('install_plugins'))
        {
            echo '您可以安装插件';
        }
        else
        {
            echo '您不能安装插件';
        }
    });</code>
    로그인 후 복사
    로그인 후 복사
    플러그인이 이미 생산 중이거나 업데이트가 푸시 될 때 다시 활성화되면 어떻게됩니까?

    실제로이 솔루션은 데이터베이스에 의존하며 코드를 푸시 할 때 추가 단계가 필요합니다. add_role 우회 WordPress 데이터베이스 어떤 경우에는 잘 작동하는 공개되지 않은 솔루션도 있습니다.

    WordPress가 시작될 때

    객체가 데이터베이스에서 역할을로드 할 때 마지막에 WordPress Core 코드를 살펴 보겠습니다.

    WordPress는 데이터베이스에서 데이터를 가져 오기 전에
    <code>add_action('init', function()   
    {
        $user = get_user_by('slug', 'admin');
        if ($user->has_cap('install_plugins'))
        {
            echo '管理员可以安装插件';
        }
        else
        {
            echo '管理员不能安装插件';
        }
    });</code>
    로그인 후 복사
    글로벌 변수를 확인합니다.

    세트 인 경우 WordPress는 변수를 False로 설정하여 내용을 사용하고 데이터베이스 사용량을 차단합니다. WP_Role::add_cap() 새로운 제한된 관리자 역할 만 유지하면서 시도해 봅시다 :

    백엔드를로드 할 때, 우리는 그것이 우리의 맞춤형 역할의 정의를 유지한다는 것을 알 수 있습니다 : .이 솔루션은 데이터베이스 문제를 해결하지만 다른 몇 가지 문제를 소개 할 수 있습니다.

    기본 API를 사용하는 플러그인은 제대로 작동하지 않을 수 있습니다. Mastering WordPress Roles and Capabilities 우리는 변경하고 싶지 않은 역할에 대해서도 각 역할의 정의를 수동으로 설정해야합니다.

      그러나 이것은 정적 역할의 사용자 정의 목록이 필요한 사용자 정의 워드 프레스 애플리케이션을 구축 할 때 실행 가능한 솔루션 일 수 있습니다.
    • 역할 정의는 코드와 함께 버전을 만들 수 있습니다.
    • 환경에 새 코드를 퍼팅하면 정의가 자동으로 업데이트됩니다.
    • 더 이상 데이터베이스 문제를 고려할 필요가 없습니다.

    결론 이 기사에서는 WordPress에서 역할 및 권한 사용에 대한 개요를 소개합니다.

    완전한 API를 통해 우리가 원하는 거의 모든 것을 수행 할 수 있지만 데이터베이스와의 관계는 여전히 주요 문제입니다.
      플러그인과 테마를 개발할 때는이 점을 명심해야합니다.
    • WordPress가 역할을 관리하는 방식에 대해 어떻게 생각하십니까? 귀하의 의견을 기대합니다!
    • WordPress 역할 및 권한 마스터 화에 관한 질문 WordPress의 기본 사용자 역할은 무엇입니까? 그들의 권한은 무엇입니까? WordPress에는 6 개의 기본 사용자 역할이 있습니다 : 슈퍼 관리자, 관리자, 편집자, 저자, 기고자 및 가입자. 각 역할에는 특정 권한이 있습니다. 예를 들어, 슈퍼 관리자는 여러 사이트의 모든 관리 기능에 액세스 할 수 있습니다. 관리자는 단일 사이트에서 모든 관리 작업을 수행 할 수 있습니다. 편집자는 다른 사용자의 게시물을 포함하여 게시물을 게시하고 관리 할 수 ​​있습니다. 저자는 자신의 게시물을 게시하고 관리 할 수 ​​있습니다. 기고자는 자신의 게시물을 작성하고 관리 할 수 ​​있지만 게시 할 수는 없습니다. 가입자는 프로필 만 관리 할 수 ​​있습니다.
    • WordPress에서 새로운 사용자 역할을 추가하는 방법은 무엇입니까?
    • WordPress에서 새로운 사용자 역할을 추가하려면
    함수를 사용할 수 있습니다. 이 함수는 역할, 디스플레이 이름 및 권한 배열의 세 가지 매개 변수를 허용합니다. 예를 들어 "Custom_Role"이라는 새 역할을 추가하고 게시물을 읽고 편집 할 수있는 권한이 있으려면 다음 코드를 사용할 수 있습니다.

    WordPress에서 사용자 역할을 삭제하는 방법은 무엇입니까?

    WordPress에서 사용자 역할을 삭제하려면 함수를 사용할 수 있습니다. 이 함수는 하나의 매개 변수 : 역할을 허용합니다. 예를 들어, 이전에 추가 된 "Custom_Role"을 삭제하려면 다음 코드를 사용할 수 있습니다.

    WordPress에서 사용자 역할에 권한을 추가하는 방법은 무엇입니까?

    WordPress에서 사용자 역할에 권한을 추가하려면

    기능을 사용할 수 있습니다. 이 함수는 권한과 역할에 권한이 있는지 여부를 나타내는 부울 값의 두 매개 변수를 허용합니다. 예를 들어, "custom_role"에 "publish_posts"권한을 추가하려면 다음 코드를 사용할 수 있습니다.

    $role = get_role('custom_role'); $role->add_cap('publish_posts', true); WordPress의 사용자 역할에서 권한을 제거하는 방법은 무엇입니까?

    WordPress의 사용자 역할에서 권한을 제거하려면 함수를 사용할 수 있습니다. 이 함수는 매개 변수 : 권한을 허용합니다. 예를 들어 "Custom_Role"에서 "Publish_Posts"권한을 제거하려면 다음 코드를 사용할 수 있습니다.

    WordPress에서 기본 사용자 역할을 변경하는 방법은 무엇입니까?

    WordPress에서 기본 사용자 역할을 변경하려면 WordPress 대시 보드에서 GT를 탐색하십시오. 새로운 사용자 기본 역할에서 드롭 다운 메뉴에서 기본값으로 설정하려는 역할을 선택하십시오. remove_cap() WordPress에서 사용자에게 여러 역할을 할당하는 방법은 무엇입니까?

    WordPress는 기본적으로 사용자에게 여러 역할을 할당하는 것을 지원하지 않습니다. 그러나 여러 역할과 같은 플러그인을 사용하여이를 수행 할 수 있습니다. 플러그인을 설치하고 활성화 한 후에는 사용자의 프로필 페이지에서 사용자에게 여러 역할을 할당 할 수 있습니다.

    WordPress의 사용자 역할에 따라 콘텐츠 액세스를 제한하는 방법은 무엇입니까? $role = get_role('custom_role'); $role->remove_cap('publish_posts'); WordPress의 사용자 역할을 기반으로 컨텐츠 액세스를 제한하려면 멤버와 같은 플러그인을 사용할 수 있습니다. 이 플러그인을 사용하면 웹 사이트의 특정 콘텐츠에 액세스 할 수있는 역할을 제어 할 수 있습니다.

    WordPress에서 사용자 정의 권한을 만드는 방법은 무엇입니까?

    WordPress에서 사용자 정의 권한을 만들려면

    기능을 사용할 수 있습니다. 이 함수는 권한과 역할에 권한이 있는지 여부를 나타내는 부울 값의 두 매개 변수를 허용합니다. 예를 들어, "manage_custom"이라는 사용자 정의 권한을 "custom_role"에 추가하려면 다음 코드를 사용할 수 있습니다.

    WordPress의 사용자가 특정 권한이 있는지 확인하는 방법은 무엇입니까?

    WordPress의 사용자가 특정 권한이 있는지 확인하려면 기능을 사용할 수 있습니다. 이 함수는 매개 변수 : 권한을 허용합니다. 예를 들어, 현재 사용자가 "manage_custom"권한이 있는지 확인하려면 다음 코드를 사용할 수 있습니다.

    모든 사진은 원래 형식과 위치를 유지합니다.

    위 내용은 WordPress 역할 및 기능 마스터 링의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    이전 기사:WordPress 범주가 설명되었습니다 다음 기사:WordPress의 Save_Post 후크에서 오류를 표시합니다
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    저자별 최신 기사
    최신 이슈
    관련 주제
    더>
    인기 추천
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿