ajax в wordpress не вызывает функцию php

интересно, может ли кто-нибудь помочь; Я пытаюсь реализовать некоторые ajax через jquery в форме в шаблоне WordPress.

Jquery работает, и я могу зарегистрировать консольное сообщение в разделе sucess: но данные равны 0, когда он должен вызывать функцию php (в данный момент на той же странице, и я могу позвонить прямо)

поэтому я думаю, что jquery работает, вызывается admin-ajax, его просто не вызывается функция php. Любые идеи, что я могу делать неправильно? Я не совсем понимаю крючки, так что, возможно, это проблема – мне нужно что-то зацепить где-нибудь?

jQuery (домен заменит комментарии)

<script type="text/javascript"> jQuery(function ($) { $( "#movies" ).autocomplete({ minLength:2, delay:500, source: function( request, response ) { $.ajax({ type: 'POST', url: "http://<!--domain here -->/wp-admin/admin-ajax.php", dataType: 'json', data: { action: 'getMoviesForCode', searchString: $("#movies").val() }, success: function( data ) { response(data); console.log('jjj'+data); } }); } }); }); </script> 

php (на той же странице)

 <?php function getMoviesForCode(){ echo " <script type=\"text/javascript\"> alert(\"hh\"); </script> "; $searchString = $_POST['searchString']; $results = va_getMoviesForCode($searchString); $results = json_encode($results); die($results); } ?> 

Благодаря,

Ты делаешь это неправильно. Функция php должна находиться в файле functions.php вашей темы.

Затем вы должны подключить эту функцию к wp_ajax_[your_action] и wp_ajax_nopriv_[your_action] .

Пример того, что должно быть в ваших functions.php :

 function getMoviesForCode(){ echo " <script type=\"text/javascript\"> alert(\"hh\"); </script> "; $searchString = $_POST['searchString']; $results = va_getMoviesForCode($searchString); $results = json_encode($results); die($results); } add_action('wp_ajax_getMoviesForCode', 'getMoviesForCode'); add_action('wp_ajax_nopriv_getMoviesForCode', 'getMoviesForCode');