WordPressユーザー管理:役割と権限の詳細な分析
WordPressのユーザー管理システムは、役割と権限に基づいています。役割とは、一意の名前と一連の権限を含むエンティティであり、それぞれがその役割のプラットフォーム固有の機能へのアクセスのレベルを定義します。 WordPressの役割と許可の作業メカニズムを掘り下げましょう。
キーポイント
- WordPressのユーザー管理は、役割と権限に基づいています。役割には、プラットフォームのさまざまな機能へのアクセスのレベルを役割によって定義するユニークな名前と一連の権限があります。
- WordPressは、ロールとその権限をカスタマイズするための包括的なAPIを提供します。
add_role()
、remove_role()
、add_cap()
、remove_cap()
などの関数を使用して、役割と許可を管理できます。ただし、これらの機能を使用する場合は、データベースアクセスとパフォーマンスに注意を払う必要があります。 - 役割や権限を扱う際にデータベースの問題を回避する方法はいくつかあります。 1つの方法は、プラグインが有効になっている場合にのみコードをトリガーすることです。
register_activation_hook()
関数を使用できます。もう1つの方法は、$wp_user_roles
グローバル変数を設定して、WordPressデータベースをバイパスすることです。
シーンメカニズムに戻ります
ロールストレージ
WordPress Codexでデフォルトの役割と許可リストを利用できます。
このリストは、データベースをwp_options
テーブルに保存します。
シリアル化wp_user_roles
キーを使用します。
脱介入データは次のとおりです
<code>array( 'administrator' => array( 'name' => '管理员', 'capabilities' => array( 'switch_themes' => true, 'edit_themes' => true, 'activate_plugins' => true, 'edit_plugins' => true, 'edit_users' => true, // [...] ) ), 'contributor' => array( 'name' => '投稿者', 'capabilities' => array( 'delete_pages' => true, 'delete_others_pages' => true, 'delete_published_pages' => true, 'delete_posts' => true, // [...] ) ), // [...] );</code>このメタデータは、新しいWordPressサイトがインストールされているときに自動的に設定されます。
WordPressが開始されると、
クラスはデータベースからリストをロードします。
WP_Roles
これは、
フックの間で発生します。 plugins_loaded
init
ユーザーをロールにリンク
WordPressは、
テーブルに保存されているを使用して、ユーザーを役割にリンクします。 wp_usermeta
meta_key
WordPressは配列を使用していることに注意してください。ユーザーは一度に1つの役割しか持たないが、後で理由があることを確認します。
<code>array( 'administrator' => true )</code>
は現在のブログのプレフィックスです。
(wp_
関数を使用して取得できます)。
マルチサイトインストールでは、ユーザーはさまざまなインスタンスで異なる役割を使用できます。
$GLOBALS['wpdb']->get_blog_prefix()
=&gt;
- =&gt;
-
wp_capabilities
=&gt;a:1:{s:13:"administrator";b:1;}
-
wp_10_capabilities
a:1:{s:11:"contributor";b:1;}
このルールは、 テーブルで見た - エントリにも適用されます。
wp_15_capabilities
最後に、
wp_user_level
メタデータと役割を見ることができます。WordPressの古いバージョンのキャラクターを扱うために使用され、現在は非推奨になっています。
コアコードで許可を使用
そこから、WordPressは必要に応じて特定のユーザーの許可を取得することができます。
WordPressコアコードでは、一部のデフォルトアクセス許可がハードコーディングされています。
たとえば、プラグイン画面が読み込まれると、次のコードを実行して現在のユーザーがプラグインを管理できるかどうかを確認します。
<code>array( 'administrator' => array( 'name' => '管理员', 'capabilities' => array( 'switch_themes' => true, 'edit_themes' => true, 'activate_plugins' => true, 'edit_plugins' => true, 'edit_users' => true, // [...] ) ), 'contributor' => array( 'name' => '投稿者', 'capabilities' => array( 'delete_pages' => true, 'delete_others_pages' => true, 'delete_published_pages' => true, 'delete_posts' => true, // [...] ) ), // [...] );</code>
役割は決してハードコードされていません。アクセスAPI
WordPressは、役割を処理するのに役立つ次のグローバル機能を提供します。
current_user_can()
現在のユーザーに必要なアクセス許可があるかどうかを確認します。<code>array( 'administrator' => true )</code>
WP_User::has_cap
特定のユーザーが許可を持っているかどうかを確認します。<code>if (!current_user_can('activate_plugins')) { wp_die(__('您没有足够的权限来管理此站点的插件。')); }</code>
がこの関数を使用していることに気付くことができます。current_user_can
get_editable_roles()
編集可能な役割に戻ります。<code>add_action('init', function() { if (current_user_can('install_plugins')) { echo '您可以安装插件'; } else { echo '您不能安装插件'; } });</code>
フィルターによって上書きされる可能性があるため、この関数に頼ってWebサイトで役割の完全なリストを取得する必要はありません。editable_roles
関数がまだフックの使用に注意してください。
admin_init
init
get_role()
そのナメクジに基づいてWP_Role
<code>add_action('init', function() { $user = get_user_by('slug', 'admin'); if ($user->has_cap('install_plugins')) { echo '管理员可以安装插件'; } else { echo '管理员不能安装插件'; } });</code>
WP_Role::has_cap()
役割に必要な権限があるかどうかを確認します。<code>add_action('admin_init', function() { $roles = get_editable_roles(); var_dump($roles); });</code>
WordPressは、ロールとその権限をカスタマイズするための完全なAPIも提供します。
add_role()
データベースに新しい役割を登録します。<code>add_action('init', function() { $role = get_role('administrator'); var_dump($role); }); // 这将打印: // WP_Role 对象 // ( // [name] => administrator // [capabilities] => Array // ( // [switch_themes] => 1 // [edit_themes] => 1 // [activate_plugins] => 1 // [edit_plugins] => 1 // [...]</code>
remove_role()
存在する場合は、データベースから必要な役割を削除します。<code>add_action('init', function() { $role = get_role('administrator'); var_dump($role->has_cap('install_plugins')); // 打印 TRUE });</code>
WP_Role::add_cap()
役割にアクセス許可を追加します。<code>add_action('init', function() { add_role('plugins_manager', '插件管理员', array( 'install_plugins', 'activate_plugins', 'edit_plugins' )); });</code>
、…)または任意のカスタム文字列(
install_plugins
)にすることができます。edit_posts
my_awesome_plugin_cap
プラグインにできるだけ多くのカスタムアクセス許可を登録できます。WP_Role::remove_cap()
存在する場合は、役割からアクセス許可を削除します。<code>add_action('init', function() { remove_role('plugins_manager'); });</code>
WP_User::add_role()
特定のユーザーに役割を追加します。<code>add_action('init', function() { $role = get_role('contributor'); $role->add_cap('install_plugins'); });</code>
WordPressバックエンドはユーザーごとに1つの役割のみを表示および管理するため、ユーザーに複数のロールを追加する必要はなく、新しいロールを追加する前に常に
を使用する必要があります。WP_User::remove_role()
WP_User::remove_role()
指定されたユーザーからロールを削除します。<code>add_action('init', function() { $role = get_role('contributor'); $role->remove_cap('install_plugins'); });</code>
WP_User::add_cap()
特定のユーザーにアクセス許可を追加します。<code>array( 'administrator' => array( 'name' => '管理员', 'capabilities' => array( 'switch_themes' => true, 'edit_themes' => true, 'activate_plugins' => true, 'edit_plugins' => true, 'edit_users' => true, // [...] ) ), 'contributor' => array( 'name' => '投稿者', 'capabilities' => array( 'delete_pages' => true, 'delete_others_pages' => true, 'delete_published_pages' => true, 'delete_posts' => true, // [...] ) ), // [...] );</code>
これは、完全な役割を作成せずにユーザーに単一の許可を追加したい場合に非常に便利です。
WP_User::remove_cap()
指定されたユーザーからアクセス許可を削除します。
<code>array( 'administrator' => true )</code>
WordPress APIのいくつかの問題
1つの質問とは別に、私たちが見ている関数は見栄えがよくなります:データベースのアクセスとパフォーマンス。
役割と許可を扱うときに主に焦点を当てているのは、コードをトリガーする必要がある場合です。 これを説明するために、WordPressコアコードを見てみましょう。
最初に、新しい空のキャラクターを追加したい:
<code>if (!current_user_can('activate_plugins')) { wp_die(__('您没有足够的权限来管理此站点的插件。')); }</code>
関数の最初の数行です(実際にはにリダイレクトされています):
新しい役割を追加すると、add_role
WP_Roles::add_role
<code>add_action('init', function() { if (current_user_can('install_plugins')) { echo '您可以安装插件'; } else { echo '您不能安装插件'; } });</code>
関数は1回実行され、何もしません。add_role
次に、新しく作成された役割にアクセス許可を追加したいとします:関数は次のとおりです。 <code>add_action('init', function() { $user = get_user_by('slug', 'admin'); if ($user->has_cap('install_plugins')) { echo '管理员可以安装插件'; } else { echo '管理员不能安装插件'; } });</code>
オブジェクトを更新しますが、新しいアクセス許可が既に登録されている場合でも、コードが実行されるたびにデータベースが更新されることもわかります。
WP_Role::add_cap()
これは、パフォーマンスを気にする場合、各ページがロードされているときにカスタムロールとアクセス許可について記述するすべてのコードが実行されないことを意味します。<code>add_action('admin_init', function() { $roles = get_editable_roles(); var_dump($roles); });</code>
solution$this->roles
これらのデータベースの問題を回避する方法はいくつかあります。 プラグインを使用してアクティブ化します関数を使用してコードをトリガーできます。
サンプルプラグインを作成しましょう:
register_activation_hook()
プラグインがすでに生産されている場合、または更新がプッシュされたときに再アクティベートが省略された場合はどうなりますか?実際、このソリューションはデータベースにも依存しており、コードをプッシュするときに追加のステップが必要です。
<code>add_action('init', function() { $role = get_role('administrator'); var_dump($role); }); // 这将打印: // WP_Role 对象 // ( // [name] => administrator // [capabilities] => Array // ( // [switch_themes] => 1 // [edit_themes] => 1 // [activate_plugins] => 1 // [edit_plugins] => 1 // [...]</code>
WordPressデータベースをバイパスオブジェクトがWordPressが起動したときにデータベースから役割をロードする最後のWordPressコアコードを見てみましょう。
WordPressは、データベースからデータを取得する前に
グローバル変数をチェックします。変数をfalseに設定することにより、データベースの使用をブロックします。 WP_Roles
<code>add_action('init', function() { $role = get_role('administrator'); var_dump($role->has_cap('install_plugins')); // 打印 TRUE });</code>
ネイティブAPIを使用したプラグインは適切に機能しない場合があります。このソリューションはデータベースの問題を解決しますが、他の問題を紹介する場合があります。
- 変更したくない役割であっても、各役割の定義を手動で設定する必要があります。
- ただし、これは、静的な役割のカスタムリストを必要とするカスタムWordPressアプリケーションを構築する場合の実行可能なソリューションである可能性があります:
ロール定義は、コードでバージョンにすることができます。
- 環境に新しいコードを吐くと、定義が自動的に更新されます。
- データベースの問題をもう考慮する必要はありません。
- 結論 この記事では、WordPressでの役割と許可の使用の概要を紹介します。
その完全なAPIにより、私たちが望むほとんどすべてを行うことができますが、データベースとの関係は依然として主な問題です。
プラグインとテーマを開発する際には、これを念頭に置いておく必要があります。
WordPressの役割を管理する方法についてどう思いますか?あなたのフィードバックを楽しみにしています!
WordPressの役割と権限の習得に関するよくある質問
WordPressのデフォルトのユーザーロールは何ですか?それらの許可は何ですか?
WordPressには、スーパー管理者、管理者、編集者、著者、貢献者、サブスクライバーの6つのデフォルトユーザーロールがあります。各役割には、特定の許可セットがあります。たとえば、スーパー管理者は、複数のサイトのすべての管理機能にアクセスできます。管理者は、単一のサイトですべての管理タスクを実行できます。編集者は、他のユーザーの投稿を含む投稿を公開および管理できます。著者は、自分の投稿を投稿および管理できます。貢献者は自分の投稿を書いて管理できますが、投稿することはできません。加入者はプロファイルのみを管理できます。
WordPressに新しいユーザーロールを追加する方法は?
WordPressに新しいユーザーロールを追加するには、
関数を使用できます。この関数は、役割、表示名、および許可配列の3つのパラメーターを受け入れます。たとえば、「custom_role」と呼ばれる新しい役割を追加し、投稿を読み取り、編集する許可を得るには、次のコードを使用できます。add_role()
WordPressでユーザーの役割を削除する方法は?WordPressでユーザーの役割を削除するには、
add_role( 'custom_role', __('自定义角色'), array( 'read' => true, // 可以读取帖子 'edit_posts' => true, // 可以编辑帖子 ) );
関数を使用できます。この関数は、1つのパラメーターを受け入れます。役割。たとえば、以前に追加された「custom_role」を削除するには、次のコードを使用できます。WordPressのユーザーロールにアクセス権を追加する方法は?
WordPressのユーザーロールにアクセス権を追加するには、remove_role()
関数を使用できます。この関数は、役割が許可を持っているかどうかを示す許可とブール値の2つのパラメーターを受け入れます。たとえば、「publish_posts」許可を「custom_role」に追加するには、次のコードを使用できます。 $role = get_role('custom_role'); $role->add_cap('publish_posts', true);
WordPressのユーザーロールからアクセス許可を削除する方法は?
WordPressのユーザーロールからアクセス許可を削除するには、
関数を使用できます。この関数は、パラメーター:許可を受け入れます。たとえば、「custom_role」から「publish_posts」許可を削除するには、次のコードを使用できます。 remove_cap()
$role = get_role('custom_role'); $role->remove_cap('publish_posts');
WordPressでデフォルトのユーザーロールを変更する方法は?WordPressでデフォルトのユーザーロールを変更するには、WordPressダッシュボードの[genters]に移動します。新しいユーザーのデフォルトロールで、ドロップダウンメニューからデフォルトとして設定するロールを選択します。
WordPressで複数のロールをユーザーに割り当てる方法は?
WordPressは、デフォルトで複数のロールをユーザーに割り当てることをサポートしていません。ただし、複数のロールなどのプラグインを使用してこれを行うことができます。プラグインをインストールしてアクティブにすると、ユーザーのプロフィールページから複数のロールをユーザーに割り当てることができます。
WordPressのユーザーロールに基づいてコンテンツアクセスを制限する方法は?
WordPressのユーザーロールに基づいてコンテンツアクセスを制限するには、メンバーなどのプラグインを使用できます。このプラグインを使用すると、Webサイト上の特定のコンテンツにアクセスできる役割を制御できます。関数を使用できます。この関数は、役割が許可を持っているかどうかを示す許可とブール値の2つのパラメーターを受け入れます。たとえば、「manage_custom」という名前のカスタム許可を「custom_role」に追加するには、次のコードを使用できます。
WordPressのユーザーに特定の権限があるかどうかを確認する方法は?add_cap()
$role = get_role('custom_role'); $role->add_cap('manage_custom', true);
WordPressのユーザーに特定のアクセス許可があるかどうかを確認するには、関数を使用できます。この関数は、パラメーター:許可を受け入れます。たとえば、現在のユーザーが「manage_custom」許可を持っているかどうかを確認するには、次のコードを使用できます。 すべての写真は、元の形式と場所を保持しています。
current_user_can()
以上がワードプレスの役割と機能のマスターの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

はい、wordpressisexcellentforcreatingportfoliowebsite.1)itoffers numersportfolio cilems like'astra'astra'foreasycustomization.2)プラグインエレメントレメントレディングの装飾、思想的な態度環境を

wordpressisadvasteousovercodingawebsitefromscratchdueto:1)easeofuseandfasterdevelopment、2)柔軟性と吸収性、3)strongCommunitySupport、4)組み込みインセンアンドマークティングツール、5)費用対効果、6)レシュリティアップデート

wordpressisacmsduetoitseaseaseofuse、customization、usermanagement、seo、andcommunitysupport.1)ofssextensiveationization throughthemesandplugins.3)ofsiscontensiveativeizationization withintentmanagement withintententmanagement with inting ustomization.3)revisustusersandpermissions.4)拡張型を提供します

WordPress Webサイトでコメントを有効にして、訪問者にディスカッションに参加し、フィードバックを共有するプラットフォームを提供します。これを行うには、次の手順に従ってください。コメントを有効にします。ダッシュボードで、設定に移動してgt;議論し、[コメントを許可]チェックボックスを選択します。コメントフォームの作成:エディターで、[ブロックの追加]をクリックし、コメントブロックを検索してコンテンツに追加します。カスタムコメントフォーム:タイトル、ラベル、プレースホルダー、ボタンテキストを設定して、コメントブロックをカスタマイズします。変更を保存します:[更新]をクリックしてコメントボックスを保存し、ページまたは記事に追加します。

WordPressサブサイトをコピーする方法は?手順:メインサイトにサブサイトを作成します。メインサイトのサブサイトのクローニング。クローンをターゲットの場所にインポートします。ドメイン名(オプション)を更新します。個別のプラグインとテーマ。

WordPressでカスタムヘッダーを作成する手順は次のとおりです。テーマファイル「header.php」を編集します。あなたのウェブサイトの名前と説明を追加します。ナビゲーションメニューを作成します。検索バーを追加します。変更を保存して、カスタムヘッダーを表示します。

WordPress Webサイトでコメントを有効にします。1。管理パネルにログインし、「設定」 - 「ディスカッション」に移動し、「コメント許可」を確認します。 2。コメントを表示する場所を選択します。 3.コメントをカスタマイズします。 4.コメントを管理し、承認、拒否、または削除します。 5。use&lt;?php comments_template(); ?&gt;コメントを表示するタグ。 6.ネストされたコメントを有効にします。 7.コメントの形状を調整します。 8。プラグインと検証コードを使用して、スパムコメントを防ぎます。 9.ユーザーにGravatarアバターの使用を奨励します。 10。参照するコメントを作成します

WordPressからFTPプラグインをインストールし、FTP接続を構成し、ファイルマネージャーを使用してソースコードをアップロードできます。手順には、FTPプラグインのインストール、接続の構成、アップロードの場所の参照、ファイルのアップロード、アップロードが成功したことを確認します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

メモ帳++7.3.1
使いやすく無料のコードエディター

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ホットトピック









