web-dev-qa-db-ja.com

ユーザーレベルに応じてページへのアクセスを制限する

ログインユーザーレベルに基づいて、特定のカスタム投稿タイプの投稿へのアクセスを制限するWordPressを作成するように依頼されました。事前に作成されたユーザーロールがいくつかあり、投稿が作成されたときにどのレベルで各投稿を表示できるかを選択します。

これを行うための最良の方法は何ですか?

2
James

これを行うには2つの方法があります。まともな会員管理プラグインであれば、コンテンツを特定のユーザロールに制限することができ、Role Scoperなどのプラグインはさらに柔軟です。よりコードベースのソリューションの場合は、必要に応じて、目的のテーマテンプレートファイルに以下のバリエーションを追加します。

<?php if(current_user_can('some_capability') ); ?>

また、some_capabilityを、必要最低限​​の役割に対応するプリセット機能またはカスタム機能と置き換えます。たとえば、編集者と管理者に限定するには(カスタマイズをしないと仮定します):

<?php if(current_user_can('delete_others_posts') ); ?>

カスタム投稿タイプの特定の投稿にこの機能を追加するのは、もう少し困難です。あなたは このSmashing Magazineのチュートリアル に似たアクションや機能を追加してユーザー名で投稿を制限するようになるでしょう。あなたがする必要があるのは、ユーザーのリストを取得することからロールまたは機能のリストを取得することへの変更だけです。繰り返しますが、既にこれを実行しているプラ​​グインの世界があります。もしあなたのニーズが複雑でなければ、ホイールを再発明したくないかもしれません。

2
JCL1178