デザイン

デザイン

ワードプレスで管理者とユーザーの権限を分けてコンテンツを分ける方法

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.

本記事は、How to Display Content Based on WordPress User Roles
翻訳・再構成したものです。
配信元または著者の許可を得て配信しています。

272 views

読了時間 : 約2分37秒

WordPress Webサイトを構築する際には、ユーザーの役割や権限に合わせてコンテンツや機能を作るのがよいでしょう。 たとえば、管理者のみに表示したい特別なコンテンツなどがあるかと思います。

WordPressには出し分けの機能があり非常に便利です。 current_user_can()関数を使用すると、ログイン中のユーザ権限を確認できます。ユーザー権限情報に基づいて、表示したいもの、もしくは表示したくないもの、を出し分けて表示することができます。こうした特定の権限を持つユーザーのみにコンテンツを表示する例を参考に 、この機能を追加する例をいくつか紹介します。

例1:管理者のみに表示する場合の確認方法

この例では、私たちのページにアクセスしたユーザーがサイト管理者であるかどうかを確認します。 管理者の場合、メッセージが表示されます。

コードに入る前に、ユーザーのアクセス権限を確認する方法がいくつかあることを確認しておきましょう。WordPress Codexによると、 current_user_can()関数で既存のユーザ権限を表示できると紹介していますがバグを起こしやすくなる可能性があるため推奨されていません。

その代わりとして、特定のユーザー権限を使用して確認します。Codexでは各ユーザー権限が完全に網羅されたリストがあります。 そのため、ユーザーが管理者であるかどうかを確認するのではなく、例えば プラグインを有効にする権限があるかどうかを確認するのです 。

具体的なコードを見てみましょう。 あなたの選択したテーマテンプレートの中に次のものが表示されます。

 

 

 

 

 

 

 

 

管理者だけが行うことができる操作、例えばプラグインを有効にする操作、をユーザーができるかどうかを確認しています。

例2:ユーザーに合わせてパーソナライズする

先ほどの例では一般的なメッセージが表示されていましたが、よりパーソナライズしたメッセージを表示することもできます。コミュニティらしさを演出する事が出来る為、 会員サイトを運営している場合に非常に役立ちます。ここでは、get_current_user()関数を使用してユーザーのファーストネームを含むウェルカムメッセージを表示します。 メンバーにWordPressの購読者の役割が割り当てられているか、も確認します。

 

記事閲覧はWordPressで付与される権限の中で最も低い権限となります。 したがって、すべてのユーザーに適用さます。これは、ユーザーを取りこぼしていないことを確認するためです。記事閲覧権限を確認する以外に、ユーザーのファーストネームをメッセージに表示します。 しかし、これと合わせ技で使用できるユーザーデータを判別する方法はほかにもいくつかあるのです。

例3:ユーザー権限によってヘッダーをカスタマイズする

最後にご紹介する事例では、もう少しドラマティックなことをしてみましょう。 ユーザーがどのような権限を持っているかによって、さまざまなテーマヘッダーを表示します。

get_header()関数を使用すると、WordPressでは複数のヘッダーファイルを使用できます。 ユーザー権限によりヘッダーを出し分けられると非常に便利です。 たとえば、サイトのメンバーにはパーソナライズされたヘッダーが表示される一方、.非会員にはより一般的なメッセージを表示することができます。

このコードで、ユーザーが記事閲読権限を持っているかどうかを再度確認します。また、 is_user_logged_in()を使用しダブルチェックとしてログインしていることを確認する機能を追加します。

プロジェクトで使用している場合は、 <?php get_header(); ?> はテンプレートに置き換えられます。

 

 

 

ユーザーに特定の権限があり、実際にログインしているかどうかを確認しています。両方の項目がtrueになると、カスタムヘッダーファイルが表示されます。それ以外の場合、テーマのデフォルトヘッダーが表示されるようになっています。

 

ユーザーのためにできること

ご紹介した例は、ユーザーエクスペリエンスを向上させる例としてほんの一部に過ぎません。 あなた自身の想像力によって他にももっと色々な方法があるのです。

次にWordPressサイトを構築する際は、ユーザーの役割と権限に応じて表示する機能を出し分ける方法を検討してみてください。 ユーザーはその使いやすさから、より素晴らしいウェブサイトを構築するでしょう。

おすすめ新着記事

おすすめタグ

このページのTOPへ