WordPressでカスタムユーザーロールを作成する方法

公開: 2021-02-06

CMSを使用してWebサイトを構築する場合、柔軟性は常に歓迎されます。 ありがたいことに、WordPressには、高度なカスタムエクスペリエンスを作成できるテーマとプラグインがあり、そのシェア以上のものがあります。

しかし、その柔軟性は、インストールできる余分なものだけではありません。 実際には、ソフトウェアのコアに組み込まれています。

カスタムユーザーロールを作成する機能は、輝かしい例です。 今日は、それらが何であるか、なぜそれらを使用したいか、そしてそれらを作成するためのいくつかの異なるテクニックを見ていきます。

ユーザー権限のきめ細かい制御

すべてのWordPressインストールで、デフォルトのユーザーロールの選択にすでにアクセスできます。 これにより、ユーザーがWebサイトのバックエンド(別名ダッシュボード)で実行できることと実行できないことを指定できます。

これは完全に理にかなっています。 コンテンツを管理するすべての人が管理者権限を持っている必要はありません。 したがって、必要に応じて各ユーザーに役割を割り当てることができます。 これは優れたセキュリティ対策であり、事故や誰かがプラグインを大量にインストールすることを防ぐことができます。

これはフロントエンドでも機能します。 ログインしたユーザーに特定のコンテンツのみを表示させたい場合は、この機能をテーマに組み込むか、メンバーシッププラグインを介して追加できます。

ただし、デフォルトのユーザーロール(管理者、編集者、作成者、寄稿者、およびサブスクライバー)は便利ですが、その追加の制御が必要になる場合があります。 そのため、WordPressには独自のカスタムロールを作成する機能があります。

カスタムロールを使用する場合

カスタムユーザーロールは、いくつかのシナリオで役立ちます。 ここにあなたが直面するかもしれないより一般的なもののいくつかがあります:

さまざまなコンテンツタイプを管理するユーザーがいます

デフォルトでは、WordPressには投稿とページの2つの主要な公開コンテンツタイプが付属しています。 ただし、カスタム投稿タイプを使用すると、簡単に追加できます。 たとえば、プレスリリースやスタッフメンバーなどの投稿タイプを作成できます。 さらに、さまざまなプラグインが独自の投稿タイプをインストールする場合もあります。

大規模な組織では、特定の人がそれぞれを管理することを念頭に置いて、いくつかの異なるタイプのコンテンツが存在する場合があります。 この場合、デフォルトのユーザーロールは、ロット全体へのアクセスを提供する可能性があるため(セットアップによってはその逆)、理想的ではありません。 ただし、カスタムロールを使用すると、さまざまなユーザーに、割り当てた投稿タイプのみを表示できます。

ユーザーは1つのことをする必要があります

ユーザーがWebサイトの機能に独自のレベルでアクセスする必要がある場合があります。 たとえば、オンラインコースを運営しているとします。 正しく機能し、コンテンツが正確であることを確認するために、フロントエンドとバックエンドのコース全体にアクセスする必要があるチームメンバーがいる場合があります。

このチームメンバーが行う必要があるのがコース自体に集中することだけである場合、管理者アカウントはやり過ぎかもしれません。 カスタムユーザーロールを使用すると、不要なオプションをくぐり抜けることなく仕事をすることができます。

既存の役割を「レベルアップ」する必要があります

時々、既存のWordPressユーザーロールはほぼ完璧です。 しかし、ユーザーがアクセスする必要のあるものが1つ余分にあるかもしれません。

著者の役割を引き受けます。 デフォルトでは、投稿は公開できますが、ページは公開できません。 通常、ユーザーをエディターに上げる必要があります。 場合によってはそれで問題ないかもしれません。 ただし、この特定のユーザーにアクセスさせたくない他の機能が含まれている可能性があります。 ここでは、カスタムロールを作成するのが最善のオプションかもしれません。

カスタムユーザーロールを作成する方法

カスタムWordPressユーザーロールを作成するには、2つの異なる方法があります。 1つは、カスタムプラグインまたはテーマのfunctions.phpファイルにコードを追加することです。 2つ目は、役割の作成と編集を可能にする多くの利用可能なプラグインの1つをインストールすることです。

あなたが利用する方法は本当に個人的な好みに依存します。 ユーザー機能を視覚的に選択できるようにする場合は、プラグインが最も適しています。 ただし、コードに慣れている場合や、他の管理者に設定を試してほしくない場合は、スニペットを追加することをお勧めします。

いずれにせよ、いくつかのコード例とプラグインの選択から始めましょう。

まず、WordPressが提供するさまざまなユーザー機能について調べることをお勧めします。 また、カスタム投稿タイプにもカスタム機能を設定できることに注意してください。 これは、前述の最初のシナリオ例で役立ちます。

方法1:コードスニペットを追加する

この例では、「スタッフメンバー」という名前のユーザーロールを作成します。 これには、作成者ロールのすべての機能が含まれますが、ページを編集および公開する追加の機能が含まれます。

役割に割り当てる各機能は、以下のスニペットにリストされており、「 true 」に設定されています。 ここでの例外は、この役割を持つユーザーが公開されたページを削除することを望まないことです。そのため、安全のために、これを明示的に「 false 」に設定しています。

この場合も、このコードはテーマのfunctions.phpファイル、またはオプションでカスタムプラグインに挿入されます。

 /* Create Staff Member User Role */ add_role( 'staff_member', // System name of the role. __( 'Staff Member' ), // Display name of the role. array( 'read' => true, 'delete_posts' => true, 'delete_published_posts' => true, 'edit_posts' => true, 'publish_posts' => true, 'upload_files' => true, 'edit_pages' => true, 'edit_published_pages' => true, 'publish_pages' => true, 'delete_published_pages' => false, // This user will NOT be able to delete published pages. ) );

このコードを保存し、ブラウザーでWebサイトを更新したら、この役割を持つ新しいユーザーを追加できます。

WordPressの新しいユーザーの追加画面。

スタッフメンバーの役割を持つユーザーがログインすると、ページと投稿の両方を表示できます。

ログインしたユーザーには、投稿とページが表示されます。

もう1つの方法は、既存の作成者の役割にいくつかの機能を追加することです。 これは、 add_cap()関数を介して実行できます。

 /* Upgrade the Author Role */ function author_level_up() { // Retrieve the Author role. $role = get_role( 'author' ); // Let's add a set of new capabilities we want Authors to have. $role->add_cap( 'edit_pages' ); $role->add_cap( 'edit_published_pages' ); $role->add_cap( 'publish_pages' ); } add_action( 'admin_init', 'author_level_up');

これらのコードスニペットはどちらも基本的に同じことを行います。 ただし、作成者の役割を持つユーザーがすでにいて、追加の機能を持たせたくない場合は、新しいスタッフメンバーの役割を追加するのが最適な場合があります。

方法2:プラグインを使用する

上記の機能は、プラグインを使用して簡単に複製できます。 このタイプのユーザーの役割と機能の管理のために、いくつかが作成されています。 GUIを利用し、プロセス全体に便利なレイヤーを追加するという利点があります。

より人気のあるオプションのいくつかを見てみましょう:

ユーザーロールエディター

ユーザーロールエディタを使用すると、ロールの機能の追加または削除は、設定のチェックボックスをオンまたはオフにするのと同じくらい簡単です。 また、独自のカスタムユーザーロールを作成し、必要な機能を設定することもできます。 プラグインは、WordPressのマルチサイトインストールもサポートしています。

WPFrontユーザーロールエディター

WPFront User Role Editorは同様の機能を提供し、ユーザーロールを追加または編集できるようにします。 ただし、管理者はユーザーをある役割から別の役割に移行し、個々のユーザーに複数の役割を割り当てることもできます。

Advanced Access Manager

より広い範囲の何かを探している場合は、Advanced AccessManagerが適している場合があります。 役割と機能の管理に加えて、メニューやウィジェットなどのフロントエンドおよびバックエンド機能へのアクセスを制御する機能を提供します。

あなたの役割を知る

カスタムユーザーロールを作成できることは、WordPressを愛するもう1つの理由です。 これは非常にニッチなものですが、デフォルトの役割を超えるものが必要な場合に非常に役立ちます。

したがって、次にユーザー機能の制御が必要な状況に陥ったときは、この強力なツールを自由に使用できることを知っておいてください。