WordPressで、特定のユーザーのタイプのユーザー権限を指定する

Last Updated:2023年07月21日| | 9のコメント

WordPress特定のユーザーの種類がユーザーの権限を指定したい場合があります。 ユーザーの役割に応じて、特定の権限を制限したり、許可したい場合、プラグインを使用するか、直接コードでアクセスを制限することができます。

この記事は、2015年度に初めて作成されたが文の内容を補強して新たに発行されました。

プラグインの使用:User Role Editor

WordPress User Role Editorプラグイン

WordPressで、新しいユーザーのレベルを追加したり、既存のユーザーのタイプ(役割)の権限を変更するには ユーザーロールエディタのようなプラグインを使用することができます。 User Role Editorは、2020年8月現在、60万以上のサイトに設置されて使用されています。

WordPress 管理者ページ>プラグイン>新規追加で「user role editor」を検索してUser Role Editorをインストールした後、 ユーザー> User Role Editorに移動してほしいユーザーのタイプの権限(Permission)を変更することができます。

WordPress ユーザーの役割の権限を変更する

上の図では、 subscriber(作成者) ユーザーのタイプの権限を変更することができる画面です。 このように、プラグインを使用すると、簡単にユーザーのタイプのアクセス権を変更することができます。

そして右から 「Add Role(役割を追加)」をクリックして、新しい役割(会員ランク)を追加することができます。

WordPress ユーザーロールの追加

User Role Editor有料版

User Role Editorの詳細については、プラグインのページを参照してみることができます。 プラグインのページを見てみると有料版では、追加のモジュールを提供するとしますね。 PROバージョンで提供される追加モジュール:

  • Block selected admin menu items for role(役割について、選択した管理者のメニュー項目ブロック)
  • Hide selected front-end menu items for no logged-in visitors、logged-in users、roles(非ログイン訪問者、ログインユーザー、ロールに対して選択されたフロントエンドのメニュー項目を非表示に)
  • Block selected widgets under “Appearance” menu for role (役割について「テーマデザイン」の下で選択したウィジェットをブロック)
  • Show widgets at front-end for selected roles(選択された役割について、フロントエンドにウィジェットを表示)
  • Block selected meta boxes(dashboard、posts、pages、custom post types)for role(役割について選択メタボックス(ダスボード、ポスト、ページ、ユーザー文のタイプ)ブロック)(
  • 「Export / Import」module。 You can export user role to the local file and import it to any WordPress site or other sites of the multi-site WordPress network(「エクスポート/インポート」モジュール。ユーザーロールをローカルファイルにエクスポートすることによって WordPress サイトやマルチサイト WordPress ネットワーク内のサイトからインポートすることができます)
  • Roles and Users permissions management via Network Admin for multisite configuration。 One click Synchronization to the whole network(マルチサイト構成について、ネットワーク管理者ページを使用して役割とユーザー権限の管理。ワンクリックで、ネットワーク全体に同期)
  • 「Other roles access "module allows to define which other roles user with current role may see at WordPress: dropdown menus, eg assign role to user editing user profile, etc. (「他の役割へのアクセス」モジュール - 現在の役割を持つ他の役割のユーザーが表示できる項目の定義)
  • Manage user access to editing posts / pages / custom post type using posts / pages、authors、taxonomies ID list(ポスト/ページ、作成者、分類IDのリストを編集できるユーザーアクセス管理)
  • あたり plugin users access management for plugins activate/deactivate operations (プラグインに応じて、プラグインの有効化/無効化操作のためのユーザー アクセス管理)
  • Per form users access management for Gravity Forms plugin (フォームに応じて、 重力フォーム プラグインについてユーザーのアクセスを管理)
  • Shortcode to show enclosed content to the users with selected roles only(周囲のコンテンツを選択したロールを持つユーザーにのみ表示するショートコード)
  • Posts and pages view restrictions for selected roles(選択された役割について書かれ、ページの表示制限)
  • Admin back-end pages permissions viewer(管理バックエンドページパーミッションビューア)

add_action関数の使い方を使用して、ユーザーの権限を指定する

プラグインを使用せずに直接コードを使用する場合は、次のような形式でテーマの関数ファイル(functions.php)に追加することができます。 チャイルドテーマ(サブテーマ)を作成した後チャイルドテーマの関数ファイルに次のコードを挿入してください。

if ( ! function_exists( 'writer_set_roles' ) ):
function writer_set_roles()
{
global $wp_roles;
// 글/페이지 편집
$wp_roles->add_cap('author','edit_others_pages'); // author가 다른 페이지를 수정할 수 있도록 허용
$wp_roles->add_cap('author','edit_published_pages'); // author가 발행된 페이지를 수정할 수 있도록 허용
$wp_roles->add_cap('author','edit_private_pages');  // author가 private 페이지를 수정할 수 있도록 허용
$wp_roles->add_cap('author','publish_pages');  // author가 페이지를 발행할 수 있도록 허용
$wp_roles->add_cap('author','delete_pages');  // author가 페이지를 삭제할 수 있도록 허용
$wp_roles->add_cap('author','delete_others_pages');  // author가 다른 페이지를 삭제할 수 있도록 허용
$wp_roles->add_cap('author','delete_others_posts');  // author가 다른 글을 삭제할 수 있도록 허용
$wp_roles->add_cap('author','delete_published_pages');  // author가 발행된 페이지를 삭제할 수 있도록 허용
$wp_roles->add_cap('author','manage_categories');  // author가 카테고리를 관리할 수 있도록 허용

// 외모 (外観)
$wp_roles->add_cap('author','edit_themes');  // author가 테마를 편집할 수 있도록 허용
$wp_roles->add_cap('author','edit_theme_options');  // author가 테마 옵션을 편집할 수 있도록 허용
$wp_roles->add_cap('author','manage_widgets');  // author가 위젯을 관리할 수 있도록 허용
$wp_roles->add_cap('author','edit_widgets');  // author가 위젯을 수정할 수 있도록 허용

// プラグイン 권한 예제
$wp_roles->add_cap('author','NextGEN Gallery overview');
$wp_roles->add_cap('author','NextGEN Use TinyMCE');
$wp_roles->add_cap('author','NextGEN Upload images');
$wp_roles->add_cap('author','NextGEN Manage gallery');
$wp_roles->add_cap('author','NextGEN Manage others gallery');
}
endif;
add_action( 'after_setup_theme', 'writer_set_roles' );
// Source: http://wordpress.stackexchange.com

上記のadd_action関数では、author(著者)に新しい権限を付与する例を示します。 author代わりにcontributor(寄稿)、editor(編集者)、カスタムユーザーのタイプなどに応用することができます。

WordPressの役割と権限の詳細については、 WordPress Codexページを参照してください。 このCodexページに出てくるの権限は、ユーザー権限ごとに制限する際にも使用することができます。 この記事で特定の記事/ページ/カテゴリにアクセスを制限する方法を説明しています。 この記事では、メンバーの役割ごとに制限する方法を示しますが、これよりも権限ごとに使用する方が効率的です。 たとえば、管理者の場合、if(current_user_can( 'administrator'))コードの代わりに

if ( current_user_can( 'activate_plugins' ))

形を使用することができます。 管理者でない場合には、次のようなコードを使用することができます。

if ( !current_user_can( 'activate_plugins' ))

メモ:


9のコメント

コメント

  1. コメントを特定の会員にのみ付けられるようにする方法があるでしょう?
    だから登録していない会員や一般会員は、コメントを表示することができず、
    正会員以上のコメントを付けたり、利用できるようにする方法があれば
    役立つようです(単にサイトに登録した会員ではなく、正会員以上)
    ありがとうございます

    応答
    • お問い合わせいただいた機能は、 WordPress 基本的な機能ではサポートされていません。

      コメントを付けることは、ログインユーザだけが付けられるようにすることができますが、コメントはすべてのユーザーに表示されます。 必要に応じて次のようなCSSを使用して非ログインユーザー(ゲスト)はコメントは表示されないようにすることができます。

      .comment {
      display:none;
      }

      .logged-in .comment {
      display:inline;
      }

      上記のコードは、実際に動作するかどうかは確認していなかったが、時間になると、一度確認してみましょう。

      一般会員、正会員…のように区分する場合は、メンバーシッププラグイン(会員制プラグイン)で可能であることを確認してください。

      会員の役割ごとに異なるCSSクラス(class)が、bodyタグなどを追加されている場合には、CSSでの調整が可能もあります。

      応答
    • もう少し考えてみるとcomments.phpファイルから正会員のみコメントを付けたり、利用できるように、適切なPHPコードを追加すると、難なく可能と思われる。

      応答
  2. こんにちは。
    user role editorを使用して、メンバー別権限を変更してみようとしました。
    ところが、管理者画面でwoocommerce部分が見えません。
    だからインストールされてプラグインに入って確認したところ、
    アクセス権がないと出てきます。
    管理者権限は触れていないのに、なぜそうなのかよく分かりません。

    また、プラグインを削除したが、まだ見えません。

    応答
    • こんにちは?

      有線上で言ったようにUser Role Editorは非常に有名なプラグインであり、多くのユーザーが使用しています。 (現在40万個以上のサイトでは、このプラグインを使用していますね。)

      言われた症状がUser Role Editorのバグであると思われる場合User Role Editorにお問い合わせヘボシルができます。 特にProバージョン(https://www.role-editor.com/ )もあるのでPro版を購入すると、サポートまで受けることができます。

      応答
  3. WPFront User Role Editor <---これはプロバージョンを使用すると、私が望むライブラリにアクセスできないようにすることができますね!

    様のおかげで見つかりました!
    ありがとうございます。!
    応答
      • インターネット川のプラットフォームを作りました。
        マーケティングクラスの権限を持つ学生は、期間限定で講義を見てから自動的に期限切れにすることができますか?

        현재 WooCommerceを通じて商品を登録した後、購入時にビメオリンクを回次別に購入内容に書き留める方式です。

      • 決済システム WooCommerceで支払うように作成されましたか?

        WooCommerce 公家で販売する WooCommerce Subscriptions(WooCommerce 購読)というプラグインがあります。 このプラグインを使えば週間、月間あるいは年間方式で商品や製品を購入できるようにするそうです。

        Let customers subscribe to your products or services and pay on a weekly, monthly or annual basis.

        このプラグインで目的の機能を実装できるかどうか WooCommerceに一度お問い合わせしてみてください?