wp_roles()


WordPressのwp_roles()関数は、現在のサイトのロールおよび権限を操作するために使用されます。この関数を利用することで、ユーザーの役割を確認、変更、または追加することが可能です。

構文

wp_roles();

wp_roles()関数は、WP_Rolesクラスのインスタンスを返します。このクラスを使用すると、役割と権限をプログラム的に管理することができます。

例1. すべてのロールを取得する

以下のコードは、現在のサイトで登録されているすべてのロールを取得します。

<?php
$roles = wp_roles()->get_names();
foreach ( $roles as $role => $name ) {
    echo '<p>' . esc_html( $name ) . '</p>';
}
?>

例2. 新しいロールを追加する

以下のコードは、新しいカスタムロール「エディターアシスタント」を追加します。

<?php
wp_roles()->add_role( 'editor_assistant', 'Editor Assistant', [
    'read' => true,
    'edit_posts' => true,
    'delete_posts' => false,
] );
?>

例3. 既存のロールを削除する

以下のコードは、特定のロールを削除します。

<?php
wp_roles()->remove_role( 'editor_assistant' );
?>

例4. ロールの権限を変更する

以下のコードは、特定のロールに新しい権限を追加します。

<?php
$role = wp_roles()->get_role( 'editor' );
$role->add_cap( 'manage_options' );
?>

例5. ロールの権限を確認する

以下のコードは、特定のロールが特定の権限を持っているかどうかを確認します。

<?php
$role = wp_roles()->get_role( 'editor' );
if ( $role->has_cap( 'manage_options' ) ) {
    echo 'このロールは「管理オプション」を操作できます。';
} else {
    echo 'このロールは「管理オプション」を操作できません。';
}
?>

注意点

  • wp_roles()関数を使用する場合、変更内容がすべてのユーザーに影響を及ぼす可能性があるため、慎重に使用してください。
  • ロールの追加や削除の際には、誤って必要なロールを削除しないように注意してください。
  • 権限の変更は、サイトのセキュリティに影響を与える可能性があるため、信頼できる権限のみを付与してください。

関連機能: