プログラミング

プログラミング

WordPressでユーザー権限を設定するために使用できるコードとプラグイン

speckyboy

Speckyboy is an online magazine for designers with its focus on sharing helpful resources, exploring new techniques, sharing useful tips, and inspiring you to build a better web.

本記事は、Creating a Custom User Role in WordPress
翻訳・再構成したものです。
配信元または著者の許可を得て配信しています。

392 views

読了時間 : 約5分41秒

CMSでWebサイトを構築する場合、柔軟性は常に必要とされます。ありがたいことに、WordPressには高度なカスタムエクスペリエンスを作成できるテーマとプラグインがあるのでとても助かります。

 

その柔軟性は、追加でインストールできるものだけではありません。実際にソフトウェアの中核に組み込まれているものもあります。ユーザー権限を設定する機能はその一例です。今日は、その機能について異なるテクニックをご紹介します。

 

 

ユーザー権限の制御

すべてのWordPressでは、デフォルトのユーザーは常にアクセスできます。ウェブサイトのバックエンド(ダッシュボードとも呼ばれます)でユーザーができることとできないことを設定できます。

 

これは理にかなっていますよね。コンテンツを管理するすべての人が管理者権限を持っている必要はありません。

 

したがって、必要に応じて各ユーザーに権限を割り当てることが必要です。これは優れたセキュリティ対策であり、事故やプラグインの大量インストールを防ぐことができます。

 

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

 

ただし、既定のユーザー権限(管理者、編集者、作成者、寄稿者、および購読者)は便利ですが、追加の設定が必要になる場合があります。そのため、WordPressには独自の権限を作成する機能があります。

 

 

 

ユーザー権限を設定する

ユーザー権限の設定は役立ちます。これから直面するかもしれない問題をここで説明します。

 

 

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

デフォルトでは、WordPressには2つの主要なコンテンツタイプがあります。投稿とページですね。投稿タイプをカスタムして簡単に機能を追加できます。

 

たとえば、プレスリリースやスタッフメンバーなどを追加できます。さらに、さまざまなプラグインもインストールできます。

 

大きな組織では、特定の人々がそれぞれのコンテンツを管理することを念頭に置いて、いくつかの異なるタイプのコンテンツを使用できるようにします。

 

この場合、デフォルトのユーザー権限は、ロット全体にアクセスできる可能性があるため、理想的ではありません。ただし、権限を設定すると、ユーザーは自分が割り当てた投稿タイプのみを表示できます。

 

 

たった1つのことを行う

ユーザーがWebサイトのある機能へのアクセスを必要とする場合があります。たとえば、オンラインコースを運営しているときなど、正しく機能していることを確認するために、フロントエンドとバックエンドからコース全体にアクセスする必要があります。

 

このユーザーが行う仕事がコース自体に集中している場合は、管理者アカウントだと権限を与える過ぎる可能性があります。ユーザーの役割を新しく設定すると、不要なオプションを与えることなく仕事をさせることができます。

 

 

既存の権限を「レベルアップ」する

既存のユーザー権限がほぼ完璧な場合もあります。しかし、ユーザーがアクセスしなければならないことがもう1つあります。

 

デフォルトでは、投稿は公開できますが、ページは公開できません。通常、ユーザーをエディターに押し上げる必要があります。

 

場合によってはそれだけでいいかもしれません。ただし、この特定のユーザーにアクセスさせたくない他の機能が含まれている場合があります。ここでは、ユーザー権限を作成するのが最適なオプションです。

 

 

ユーザー権限を作成する方法

ユーザー権限を作成するには、2つの方法があります。1つ目は、functions.phpファイルにコードを追加することです。2つ目は、権限を作成および編集できるプラグインをインストールすることです。

 

どの方法を使用するかは、個人の好みによります。視覚的な方法でユーザー機能を選択する必要がある場合は、プラグインが最も理にかなっています。ただし、コードに慣れている場合や、他の管理者がプラグインをしたくない場合は、コードを追加してください。

 

いずれにしても、いくつかのコードとプラグインを説明します。

 

まず、WordPressが提供するさまざまなユーザー権限について学習することをお勧めします。また、カスタム投稿タイプには、カスタム機能があることに注意してください。

 

 

方法1:コードを追加する

この例では、「Staff Member」というユーザー権限を作成します。これには、作成した権限のすべての機能が含まれますが、ページを編集および公開する追加機能も付けれます。

 

権限に割り当てる機能は、以下のスニペットに表示されており、「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.
)
);

 

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

 

 

 

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

 

 

 

もう1つの方法は、既存のAuthorにいくつかの機能を追加することです。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を利用し、プロセス全体に便利なレイヤーを追加するという利点があります。一般的な例をいくつかを見てみましょう。

 

User Role Editor

設定のボックスをオンまたはオフにするだけで、機能を追加または削除できます。独自のユーザー権限を作成し、必要な機能を設定することもできます。プラグインは、WordPressのマルチサイトインストールもサポートしています。

 

 

 

WPFront User Role Editor

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

 

 

 

Advanced Access Manager

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

 

 

 

権限を有効利用する

ユーザー権限を作成する機能は、WordPressが愛される1つの理由にしかすぎません。ニッチですが、デフォルトの役割を超えるものが必要な場合には非常に役立ちます。

 

ユーザー権限の作成が必要な状況になったときは、これらの有益なツールがあることを思い出してください。

おすすめ新着記事

おすすめタグ