概要
current_user_can 関数は、現在のユーザーの権限を調べるために使用される非常に便利な関数です。この関数は、特定の権限を持っているかどうかを判断する際によく使われます。以下に、この関数がどのような機能を実装する際に使われるかの例を挙げます。
- 投稿の公開・非公開の判断
- ページや投稿の編集権限チェック
- ユーザー管理画面へのアクセス制御
- プラグイン設定の保存権限チェック
- 特定のカテゴリーへの投稿権限のチェック
- カスタムポストタイプの表示権限チェック
- メディアライブラリへのアップロード権限の確認
- 特定のウィジェットの表示可否判断
構文
current_user_can( string $capability, mixed $args = null )
パラメータ
$capability(string): 確認したい権限名(例:'edit_posts')。$args(mixed): (オプション)権限の確認時に使用する追加の情報。
戻り値
- 成功した場合は
true、失敗した場合はfalseを返します。
関連する関数
利用可能なバージョン
current_user_can 関数は、WordPress 2.0 以降で利用可能です。
コアファイルのパス
wp-includes/capabilities.php
サンプルコード
サンプルコード 1: 投稿の編集権限を確認するコード
if (current_user_can('edit_post', $post_id)) {
// 投稿を編集する処理
}
このコードは、特定の投稿が現在のユーザーによって編集可能かどうかを確認するものです。
サンプルコード 2: ユーザー管理画面へのアクセス制御
if (!current_user_can('manage_options')) {
wp_die(__('あなたにはこのページへのアクセス権がありません。'));
}
このコードは、ユーザーが管理者権限を持っていない場合にエラーメッセージを表示し、アクセスを制限します。
サンプルコード 3: メディアのアップロード権限を確認する
if (current_user_can('upload_files')) {
// ファイルをアップロードする処理
}
このコードは、現在のユーザーがファイルをアップロードする権限を持っているかどうかをチェックします。
サンプルコード 4: 特定のカスタムポストタイプの権限確認
if (current_user_can('edit_custom_post_type')) {
// カスタムポストタイプを編集する処理
}
このコードは、特定のカスタムポストタイプに対する編集権限の確認を行います。
サンプルコード 5: 設定ページへのアクセス制御
if (!current_user_can('manage_options')) {
add_action('admin_notices', function() {
echo '<div class="error"><p>設定にアクセスする権限がありません。</p></div>';
});
}
このコードは、権限がない場合に管理画面にエラーメッセージを表示します。
この関数のアクションでの使用可能性
| アクション名 | 使用可能性 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | |
| plugins_loaded | |
| wp_roles_init | |
| setup_theme | |
| after_setup_theme | |
| set_current_user | |
| init | |
| register_sidebar | |
| wp_loaded | |
| send_headers | |
| parse_query | |
| pre_get_posts | |
| wp | |
| template_redirect | |
| get_header | |
| wp_head |
この関数は特定のWordPressバージョンで非推奨または削除された場合はありません。