web-dev-qa-db-ja.com

Admin-ajaxを停止しますか?

単にadmin-ajax.phpの実行を無効にしたり停止したりすることは可能ですか?

WordPress Docを検索しました。 Googleを検索しました。このフォーラムを検索しました。答えが見つかりませんでした。

これも試してみましたが、うまくいきません。

function stop_ajax()
{
    define( 'DOING_AJAX', false );
}
add_action( 'admin_init', 'stop_ajax' );
2

admin-ajax.php が最初に行うことは、DOING_AJAXを定義することです。その後、 wp-load.php をロードします。それは他の何かをします、そしてあなたがコントロールすることがそれに遭遇する最初のものはwp-config.phpです。

ですから、すべてのajaxを止めたいのなら、wp-config.phpファイルに以下を追加することができます。

if( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
  wp_die( '0', 400 );
}

wp-configファイルにアクセスできない場合、または単にプラグインを介してアクセスしたい場合は、それもできます。もしそれがajaxをするという要求であれば、それはすでに定義されているのでそれをフックに追加する必要はありません。

/**
 * Plugin Name: Stop Ajax
 */
if( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
  wp_die( '0', 400 );
}

Ajaxを必要とするプラグインやテーマを使用している場合は副作用がありますので注意してください。

5
Nathan Johnson