説明
get_role() は、ロールのオブジェクトを取得する関数です。
基本構文
get_role( string $role ): WP_Role|null
引数
$role:ロールの識別名
戻り値
WP_Role。存在しなければ null。
使い方(サンプル)
$role = get_role( 'editor' );
if ( $role ) {
$role->add_cap( 'manage_categories' );
}
注意点
- ロールへの権限追加はデータベースに保存されます。
実務での使いどころ
- 既存のロールに、権限を追加・削除するとき(
add_cap()・remove_cap())。 - ロールが、ある権限を持つかを確認するとき(
has_cap())。
よくあるミスと対処
- 存在しないロールでは
nullが返る。確認せずにメソッドを呼び、エラーになる。 add_cap()の結果は、データベースに保存される。毎回のリクエストで呼ぶ必要はない。- 権限の追加を、毎回実行している。有効化時など、1回だけ実行する。
NG例
get_role( 'editor' )->add_cap( 'manage_options' ); // null のときエラー。管理者並みの権限を渡している
OK例
$role = get_role( 'editor' );
if ( $role ) {
$role->add_cap( 'edit_theme_options' );
}
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| ロールを取得(権限の変更) | get_role() |
| ロールを作る | add_role() |
| ロールを削除する | remove_role() |
関連項目
公式リファレンス:get_role() | Function | WordPress Developer Resources

コメント