Bei meinen Tests mit ajax im Frontend ist mir eines aufgefallen:
Ich hatte versucht, mein JS Script und das Registrieren des ajax_nopriv Hooks von den Admin-Pages fernzuhalten und in meinem Plugin folgendes notiert:
function ...() { if (is_admin() === false ) { add_action('wp_enqueue_scripts', array ('...','my_scripts')); add_action('wp_ajax_nopriv_...', array ('...','...'),7); } }
Das führt aber dazu, dass der ajax Request nicht ausgeführt werden kann und eine -1 zurück liefert.
So ging es dann ohne Probleme:
function ...() { add_action('wp_enqueue_scripts', array ('...','my_scripts')); add_action('wp_ajax_nopriv_...', array ('...','...'),7); }
Nach wie vor muss man sich ausloggen, wenn man sein Plugin austesten will, da es sonst nicht funktioniert und eine 0 zurück liefert.
English Summary for „Tipp für ajax im Frontend“:
Don’t try to exclude your add_action(‚wp_ajax_nopriv_…‘, array (‚…‘,’…‘),7);
from admin pages. Otherwise your ajax nopriv request will return a -1.