私は wp-editor を使用して、ユーザーがテキストを書き、メディアをアップロードできるようにしています。
管理者としてログインしていないユーザーがバックエンドにアクセスできないようにするスクリプトを追加しました。
これはスクリプトです:
function yproject_admin_init() {
if (! current_user_can( 'activate_plugins' )) {
wp_redirect(site_url());
exit();
}
}
add_action( 'admin_init', 'yproject_admin_init' );
問題は、管理者以外のユーザーがファイルをアップロードしようとすると、ファイルがアップロードされたように見えますが、最後に「アップロードでエラーが発生しました。後でもう一度やり直してください」というメッセージが表示されることです。
「リダイレクト」行と「終了」行を削除すると、正常に動作します (ただし、明らかに、ユーザーは管理者側にアクセスします)。
これを防ぐためにどのテストを追加できますか?