質問: カスタムロール機能を作成する方法 私のプラグインのインターフェースにアクセスするためのカスタム機能を作成したいです。 プラグインは、アクティベーション時にすべての管理者アカウントにこの機能を追加して管理する必要がありますか? もしそうなら:wordpressはサブサイトのすべての管理者とマルチサイトインストールのスーパー管理者に機能を追加することを管理しますか、それともその機能はプラグインによって処理される必要がありますか?
回答: 追加したものを削除まず、すべての{アクティベーション時に追加 _もアンインストール時に削除を取得するようにしてください。 サンプルコードを含む簡単なチュートリアル あなたのために/.小さなプラグインでテストする:私は本当にmuについてあまり知りませんが、私が言うことができる限り、役割オブジェクトはすべてのブログにわたってグローバルです。この小さなプラグインを試して、何ができるかを見てください。<?php /* plugin name: mu roles check plugin uri: https://github.com/franz-josef-kaiser/ description: check roles during viewing a blog author: franz josef kaiser author uri: https://plus.google.com/u/0/107110219316412982437 version: 0.1 text domain: murc license: gpl v2 - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html */ /** * show the blog data and the role names in this blog * also shows if the custom capability was successfully added, or displays n/a for the role * * @return void */ function wpse35165_role_check() { $blog = get_current_site(); $custom_cap = 'name_of_your_custom_capability'; $html = "<hr /><table>"; $html .= "<caption>list roles in (blog) {$blog->site_name} / id#{$blog->id}</caption>" $html .= "<thead><tr><th>role name</th><th>capabilties</th></tr></thead><tbody>"; foreach ( $globals['wp_roles'] as $name => $role_obj ) { $cap = in_array( $custom_cap, $role_obj->caps ) ? $custom_cap : 'n/a'; $cap = $cap or in_array( $custom_cap, $role_obj->allcaps ) ? $custom_cap : 'n/a'; $html .= "<tr><td>{$name}</td><td>{$cap}</td></tr>"; } $html .= '</tbody></table>'; print $html; } add_action( 'shutdown', 'wpse35165_role_check' ); 機能を追加する/** * add the capability to the role objects * should be in your activation function and done before you inspect with your plugin * * @return void */ function wpse35165_add_cap() { $custom_cap = 'name_of_your_custom_capability'; $min_cap = 'the_minimum_required_built_in_cap'; // check "roles and objects table in codex! $grant = true; foreach ( $globals['wp_roles'] as $role_obj ) { if ( ! $role_obj->has_cap( $custom_cap ) and $role_obj->has_cap( $min_cap ) ) $role_obj->add_cap( $custom_cap, $grant ); } } 注: ロールにアクセス権を付与せずにロールに機能を追加できます。2番目の引数$grant = false;を設定するだけです。これにより、最後の引数を含む上限をtrueとして追加するだけで、シングルユーザーをホワイトリストに登録できます。