user_can_for_site()


WordPressの関数user_can_for_site()は、特定のユーザーが特定のサイトに対して特定の権限を持っているかを確認するために使用されます。

構文

user_can_for_site( int $user_id, string $capability, int $site_id = null );

引数の説明:

  • $user_id (int) — チェックしたいユーザーのID。
  • $capability (string) — 確認したい権限スラッグ。
  • $site_id (int) — (オプション)対象となるサイトのID。指定しない場合は現在のサイトが使用されます。

例 1: 投稿を編集できるか確認

<?php
if ( user_can_for_site( get_current_user_id(), 'edit_posts' ) ) {
    echo 'このユーザーは投稿を編集できます。';
}
?>

例 2: サイト管理者権限の確認

<?php
if ( user_can_for_site( 1, 'manage_options' ) ) {
    echo 'このユーザーは管理者です。';
}
?>

例 3: 複数の権限を条件分岐で確認

<?php
if ( user_can_for_site( get_current_user_id(), 'edit_pages' ) ) {
    echo 'ページ編集が可能です。';
} elseif ( user_can_for_site( get_current_user_id(), 'edit_posts' ) ) {
    echo '投稿編集が可能です。';
} else {
    echo '編集権限がありません。';
}
?>

例 4: 別サイトでの権限確認

<?php
if ( user_can_for_site( 1, 'delete_posts', 2 ) ) {
    echo 'このユーザーはサイト2で投稿を削除できます。';
}
?>

例 5: ユーザー権限に基づいたメニュー表示

<?php
if ( user_can_for_site( get_current_user_id(), 'edit_theme_options' ) ) {
    echo '<a href="/customize.php">テーマカスタマイズ</a>';
}
?>

注意点:

  • $site_idを指定しない場合、現在のサイトが自動的に使用されます。
  • この関数はマルチサイト環境で特に便利です。

関連機能: