1

How can I restrict access to a specific Wordpress page based on the user's role or capability? I am aware that there are various plugins that can achieve this and I found some very aged solutions while googling.

I believe it is about time to have an uptodate solution that works.

4

1 に答える 1

4

あなたの最近の質問に対する私の回答に続くコメントで説明しようとしましたが、リンクされたドキュメントの下部にある開発リソースセクションで参照されているように、(私が知る限り)最も柔軟で包括的な方法ですUser Levelsの置き換え (2.0) および非推奨 (3.0) を考慮して、ユーザーの機能をテストします。current_user_can

ページを表示したり、特定の変更を行うためのアクセスを許可または制限する場合でも、ロールに関連付けられているものとして Wordpress によって既に定義されている機能と結び付けることが理にかなっています。これは、あらゆる種類の役割のスコープ機能の編集、またはスーパー管理者のプラグインまたは機能を使用する場合に特に当てはまります。また、個々のインストールまたは複数サイトのインストールのアプリケーションによって妨げられず、可能なユーザーの全範囲をカバーします。

現在のユーザーがこれまたはあれを実行できるかどうかをテストすると、これらの機能は、特定の役割またはユーザー レベルに関連付けられている機能よりも変更される可能性がはるかに低くなります。

知っておくべきことはすべてdocscurrent_user_canで十分に説明されており、通常は次のロジックに従います。

if ( current_user_can('do_something_pertaining_to_the_below') ) {
    echo 'You are a user who can do the above thing, so do the below thing';
    /* the thing */
}

逆に:

if ( !current_user_can('some_fancy_capability') ) {
    echo 'No can do';
    return;
}
else { /* the similarly fancy, restricted thing */ }

とはいえ、より進歩的で知的な方法を誰かが聞いたことがあれば、私は完全に耳を傾けます!

于 2012-09-21T18:08:39.503 に答える