私はマルチサイトネットワークを持っていて、それが実行されないように/wp-admin/ms-delete-site.phpを保護したいです。サイトの削除はコマンドラインからのみ管理します。
今のところ一番上にwp_die()の呼び出しを追加しましたが、WPコアファイルには変更を加えずに、プラグインでこれを処理することを好みます。
これをプラグインに実装するための最良の方法は何ですか?
もう1つの方法は、フック map_meta_cap を調べて、ユーザーのdelete_site
の機能を削除することです。 delete_site
を許可したいときに制限されたユーザーまたはコンテキストのセットがある場合は、その機能を許可できます。
そうです、 編集コアはノー - ノー です。
代わりに、これを実行できます。
add_action( 'current_screen', 'wpse242553_no_delete_site_screen' );
function wpse242553_no_delete_site_screen() {
// Check to see if we're using the CLI client. If so, bail out.
if ( 'cli' == php_sapi_name() ) {
return;
// I'm not sure this is strictly necessary.
}
if ( 'ms-delete-site' == get_current_screen()->base ) {
// You can add whatever message you like here,
// or even use wp_safe_redirect() to go elsewhere.
wp_die( 'Sorry, we only delete sites from the command line.' );
}
}
それをあなたのネットワークのすべてのサイトに適用させるために プラグイン を使わなければなりません。
current_screen
フックget_current_screen()
php_sapi_name()
(チェックして、 wp-cli
を使用している場合は、 SAPI名としてcli
を返します。