I am working on getting multiple functions to work with wp_ajax_ and the first two functions fire just fine. However I have the need for a completely new query that will take advantage of AJAX also.

  • Should I beef up my first function with conditionals? Or
  • Can I init more than one wp_ajax_ function like my code below?

My code so far:

add_action( 'init', 'my_ajax_init' );
function my_ajax_init() {
   add_action('wp_ajax_nopriv_wpa56343_search', 'my_ajax_search');// works
   add_action('wp_ajax_wpa56343_search', 'my_ajax_search'); // works

   add_action('wp_ajax_nopriv_nogeo_results', 'nogeo_search'); // does not
   add_action('wp_ajax_nogeo_results', 'nogeo_search'); // does not

my_ajax_search is functioning fine with my JS AJAX calls. nogeo_search is not. My question is - is what I am doing to declare my ajax functions correct? If it is not correct please explain how to use wp_ajax_ with multiple callback functions.

  • I cannot get any code to format above. So sorry – Ben Racicot Aug 13 '13 at 21:09
  • The markdown (among other things) sometimes has trouble with code that follows a list. I added a line of "normal" text to force it to behave. – s_ha_dum Aug 13 '13 at 21:47
  • Your code is fine. The second question is a matter of preference and the first (and last) are not answerable, in my opinion, without more information. – s_ha_dum Aug 13 '13 at 21:51
  • The conditional question was based on if using multiple wp_ajax_ functions is a bad idea. I'd be forced to send extra post vars etc to conditional my existing query. Having trouble getting all this to output... Thanks for the good answers. – Ben Racicot Aug 13 '13 at 23:29
  • 1
    Mean? No idea what you mean. Your question/problem is not clear to me. – s_ha_dum Aug 14 '13 at 0:01

I was able to get multiple wp_ajax_ functions to declare callback functions like this:

add_action( 'init', 'my_ajax_init' );
function my_ajax_init() {
    add_action('wp_ajax_nopriv_wpa56343_search', 'first_search');
    add_action('wp_ajax_wpa56343_search', 'first_search');

add_action( 'init', 'my_ajax_no_geo_init' );
function my_ajax_no_geo_init() {
    add_action('wp_ajax_nopriv_nogeo_results', 'second_search');
    add_action('wp_ajax_nogeo_results', 'second_search');
| improve this answer | |
  • upvoted to get this question out of the unanswered questions queue on the site, but the code here is virtually the same as in the question. – Mark Kaplun Apr 15 '17 at 12:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.