Cum să oprești admin-ajax?

15 mar. 2018, 00:55:00
Vizualizări: 15.7K
Voturi: 7

Este posibil să dezactivezi/oprești pur și simplu rularea fișierului admin-ajax.php?

Am căutat în Documentația WordPress. Am căutat pe Google. Am căutat pe acest forum. Nu am găsit niciun răspuns.

Am încercat și această soluție, dar nu funcționează:

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

Ce înseamnă prin "a dezactiva/opri admin-ajax.pl să ruleze"? Ce ar trebui făcut dacă o astfel de cerere este trimisă și este dezactivată?

Krzysiek Dróżdż Krzysiek Dróżdż
15 mar. 2018 01:04:51

Nu este clar dacă te referi la wordpress heartbeat, dar în acest caz, există câteva tutoriale bune pe internet care explică cum să-l dezactivezi sau mai bine, cum să-l limitezi. Acesta este un bun punct de plecare https://www.siteground.com/tutorials/wordpress/limit-heartbeat/

Alex Sancho Alex Sancho
15 mar. 2018 01:07:28
Toate răspunsurile la întrebare 1
0

Primul lucru pe care îl face admin-ajax.php este să definească DOING_AJAX. Apoi, încarcă wp-load.php. Efectuează și alte operații, iar primul element peste care întâlnește și pe care îl puteți controla este wp-config.php.

Deci, dacă doriți să opriți toate cererile AJAX, puteți adăuga următoarele în fișierul wp-config.php:

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

Dacă nu aveți acces la fișierul wp-config sau doriți să faceți acest lucru printr-un plugin, puteți face și asta. Nu este nevoie să adăugați codul la un hook, deoarece dacă este o cerere AJAX, variabila este deja definită.

/**
 * Plugin Name: Oprește AJAX
 */
if( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
  wp_die( '0', 400 );
}

Vor exista efecte secundare dacă utilizați pluginuri sau teme care necesită AJAX, așa că fiți atenți.

15 mar. 2018 02:28:39