Intereting Posts
Отключить раздел «Blogroll» или «WordPress Dashboard News» в WordPress v.4.1? Несколько рядов виджета нижнего колонтитула проблема с мета-контентом WP-Post Ratings Цикл переадресации SSL с использованием WordPress HTTPS Plugin Соответствующие URL-адреса WordPress с задними тильдами Как я могу разрешать липкие сообщения, но закрываю запрос до 1 сообщения? Создавайте только размер изображения при использовании в избранном изображении Как настроить found_posts так, чтобы он учитывал смещение и разбиение на страницы Я получил ERR_TOO_MANY_REDIRECTS на субдомене WordPress REST API удаляет HTML-теги, как я могу отключить это? Найдите пустые страницы или страницы с символами меньше x db преобразует десятичное число неправильно Игнорировать последние два сообщения Разработка плагинов: get_post_meta не работает Принудительные загрузки Используйте Yearmonth для отключения (0) для всех существующих сайтов в Multisites

Проблема wordpress add_action () в вызове ajax

После того, как я нашел решение для проблемы, я не понял, что именно я делаю ошибку. Пожалуйста, дайте свой ценный ответ на мою проблему и скромный запрос не блокировать, если вы не можете ответить.

поэтому я пытаюсь использовать Ajax Call в WordPress и получаю проблему «Неустранимая ошибка: вызов неопределенной функции add_action () в C: \ xampp \ htdocs \ brandcart \ wp-content \ themes \ XXten \ functions.php в строке 51"

WordPress: 4.1.1 Тема: Двадцать десять

Вот мой код:

в Двадцать десять page.php

<input type="hidden" name="GreetingAll" id="GreetingAll" value="Hello Everyone!" /> <input type="submit" id="PleasePushMe" /> <div id="test-div1"> </div> 

в Двадцать десять functions.php

 add_action( 'init', 'add_myjavascript' ); function add_myjavascript(){ wp_enqueue_script( 'ajax-implementation.js', get_bloginfo('template_directory') . '/script/ajax-implementation.js', array( 'jquery' ) ); } // creating Ajax call for WordPress add_action( 'wp_ajax_nopriv_MyAjaxFunction', 'MyAjaxFunction22' ); add_action( 'wp_ajax_MyAjaxFunction', 'MyAjaxFunction22' ); function MyAjaxFunction22(){ //get the data from ajax() call $GreetingAll = $_POST['GreetingAll ']; $results = "<h2>".$GreetingAll."</h2>"; // Return the String die($results); } 

и мой ajax-implementation.js (который находится в каталоге сценария в теме)

 jQuery(document).ready(function() { var GreetingAll = jQuery("#GreetingAll").val(); jQuery("#PleasePushMe").click(function(){ jQuery.ajax({ type: 'POST', url: 'http://localhost/brandcart/wp-content/themes/twentyten/functions.php', data: { action: 'MyAjaxFunction', GreetingAll: GreetingAll, }, success: function(data, textStatus, XMLHttpRequest){ jQuery("#test-div1").html(''); jQuery("#test-div1").append(data); }, error: function(MLHttpRequest, textStatus, errorThrown){ alert(errorThrown); } }); }); }); 

Solutions Collecting From Web of "Проблема wordpress add_action () в вызове ajax"

Вы отправляете запрос AJAX в неправильное место. Конечно, вызов functions.php напрямую вызовет неопределенные функциональные ошибки, потому что API WordPress не загружается functions.php (это наоборот). Автомобиль не продвигает топливо вперед, топливо заставляет машину двигаться вперед, просто попадая в автомобиль, волшебство не покажет топливо, так же как и загрузка functions.php Php не будет волшебным образом создавать все API WordPress.

Кроме того, использование файлов в вашей теме в качестве AJAX и конечных точек представления формы – огромная дыра в безопасности. Даже если вы меняете тему, эти конечные точки все еще существуют и могут использоваться.

Поэтому вместо этого используйте официальную конечную точку ajax:

http://codex.wordpress.org/AJAX_in_Plugins

Когда вы вставляете свой сценарий, также локализуйте переменную, чтобы передать URL-адрес конечной точки на ваш javascript:

 // in JavaScript, object properties are accessed as ajax_object.ajax_url, ajax_object.we_value wp_localize_script( 'ajax-script', 'ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) ); 

Затем в вашем javascript конечная точка будет:

 ajax_object.ajax_url 

Заключительная записка

Вся ваша работа будет уничтожена при следующем обновлении двадцать. Вместо того, чтобы изменять тему двадцать, создайте дочернюю тему и внесите в нее свои модификации. Таким образом, вы можете обновлять темы по умолчанию без каких-либо изменений