Я работаю над веб-сайтом, использующим Wordpress, но все ответы от admin-ajax.php имеют открывающий тег php, который вызывает ошибки.
Вот пример ответа, когда я пытаюсь найти плагин на странице «Добавить плагины» в wordpress:
<?php{"success":true,"data":{"count":4399,"items":"<input type=\"hidden\" name= ... }}
Кажется, эта проблема возникает каждый раз, когда на сайте используется ajax.
Редактировать:
Я изучил свою проблему еще немного и вот что нашел.
В примере, который я привел ранее, файл, который делает запрос, называется load-scripts.php. Но проблема возникает с любым запросом ajax, сделанным wordpress. Например, когда я пытаюсь добавить нового пользователя с помощью формы (с помощью плагина User Registration), файл, который делает запрос, называется user-registration.min.js, а в ответе все еще есть тег php внутри:
<?php{"success":false,"data":{"message":["Username already exists.","Email already exists."]}}
Изменить 2:
Я нашел способ решить свою проблему. Это своего рода грязное исправление, но оно работает. Поскольку все мои ответы ajax имели начальный тег php, я решил отфильтровать все ответы ajax и удалить этот тег.
Я просто добавил для этого небольшой код javascript.
// Fix php tag in ajax responses
(function($){
$.ajaxSetup({
dataFilter: function (response, type) {
response = response.replace('<?php', '');
return response;
}
});
})(jQuery);
Как я уже сказал, грязновато, но работает.
@TheWolf Я не знаю, какая функция обрабатывает запрос ajax. Это не то, что я закодировал сам. Есть ли способ определить, какая функция вызывает?
Вы меняли какие-нибудь файлы библиотеки, такие как admin-ajax.php?
@MalayM Насколько я знаю. Я сравнил файл admin-ajax.php со своего сайта с файлом из чистого wordpress, и нет никакой разницы.
Пожалуйста, вставьте код javascript запроса ajax, чтобы лучше понять.
@MalayM Я не знаю, где найти javascript-код ajax. Как узнать, какая функция выполняет запрос?






показать функцию, которая обрабатывает запрос ajax.