check_import_new_users()
は、ネットワークを利用してユーザーを一括インポートするときに、現在操作を行っているユーザーが必要な権限を持っているかを判定します。
主にマルチサイト環境で使われ、管理者やネットワーク管理者以外によるユーザーインポートを防ぎます。
目次
基本構文
check_import_new_users( string $permission = '' ): bool;
$permission
は将来的に使われる可能性がある引数ですが、現時点では未使用です。current_user_can( 'manage_network_users' )
によって判定され、true
(許可)またはfalse
(不許可)を返します。
引き数と戻り値
スクロールできます
引数名 | 型 | 説明 |
---|---|---|
$permission | string | チェック対象のパーミッション名(現在は未使用。将来の拡張用)。 |
スクロールできます
戻り値名 | 型 | 説明 |
---|---|---|
true | bool | 現在のユーザーが manage_network_users 権限を持っている場合。 |
false | bool | 権限がない場合。 |
使用例
タグを使った使用例
if ( check_import_new_users() ) {
echo 'ユーザーのインポートが可能です。';
// インポート処理を続行
} else {
wp_die( '権限がありません。' );
}
ネットワークのインポートを行う処理の前に実行し、権限判定に基づいて処理を制御します。
注意点
- マルチサイト専用:この関数は、通常のシングルサイトでは有効な権限を持つユーザーが対象外です(
manage_network_users
はネットワーク管理者権限)。 $permission
は将来の拡張用で、現段階では機能しません。呼び出し時に値を渡す必要もありません。- 単なる判定処理なので、実際のユーザーインポートやエラーハンドリングは別途自分で実装する必要があります。
良く一緒に使われる関数
current_user_can()
if ( current_user_can('manage_network_users') ) {
// ネットワーク管理者向けの処理
}
check_import_new_users()
は内部で同関数を使って権限判定しています。
is_multisite()
if ( is_multisite() && check_import_new_users() ) {
// マルチサイトでかつインポート権限あり
}
シングルサイトやマルチサイト環境を判定するために使います。
wp_die()
if ( ! check_import_new_users() ) {
wp_die('権限がありません');
}
権限がない場合に処理を止める標準関数です。
想定されるトラブル
管理者でないユーザーでもインポート処理が通ってしまう
ネットワーク設定に問題があり、ユーザーに manage_network_users
権限が与えられている可能性があります。
解決方法
Super Admin
(ネットワーク管理者)であることを確認してください。Network Admin → Users
画面で対象ユーザーに適切な権限が付与されているか確認します。
マルチサイト環境にもかかわらず常に false
が返る
is_multisite()
が正しく認識されていない、またはフック処理が適切でない可能性があります。
解決方法
wp-config.php
にdefine('WP_ALLOW_MULTISITE', true)
があるか確認。- サイトがマルチサイトネットワークに正しく設定されているかチェックしてください。
Q&A
まとめ
check_import_new_users()
は、マルチサイト環境において「ネットワーク管理者権限を持つユーザーかどうか」を判定するための簡易関数です。
実際のユーザーインポート処理を呼び出す前に、この関数で権限チェックを行うことで、不要な権限エラーやセキュリティリスクを防げます。シンプルですが重要なチェックポイントです。
コメント