get_role() の使い方|説明・引数・注意点

説明

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()

関連項目

add_role()、remove_role()

公式リファレンス:get_role() | Function | WordPress Developer Resources

コメント

タイトルとURLをコピーしました