Я создаю плагин wordpress, и у меня возникают проблемы с правильной работой вызова cURL.Как вы используете завиток в плагинах wordpress?
Допустим, у меня есть страница www.domain.com/wp-admin/admin.php?page=orders
В странице заказов У меня есть функция, которая выглядит, чтобы увидеть, если кнопка была нажата, и если поэтому ему нужно сделать вызов cURL на ту же страницу (www.domain.com/wp-admin/admin.php?page=orders & dosomething = true), чтобы запустить другую функцию. Причина, по которой я делаю это, так это то, что я могу использовать этот вызов cURL как асинхронный.
У меня нет ошибок, но я также не получаю ответа. Если я изменю свой url на google.com или example.com, я получу ответ. Есть ли проблема аутентификации или что-то в этом роде?
Мой код выглядит примерно так. Я использую get, echos и не выполняю async только для удобства тестирования.
if(isset($_POST['somebutton']))
{
curlRequest("http://www.domain.com/wp-admin/admin.php?page=orders&dosomething=true");
}
if($_GET['dosomething'] == "true")
{
echo("do something");
exit;
}
function curlRequest($url) {
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($ch);
return($response);
}
Вам необходимо иметь возможность маршрутизировать ваш веб-сервер через интерфейс loopback. Возможно, веб-сервер настроен на прослушивание только на «общедоступном» IP-адресе, а не на кольцевом адресе, таком как 127.0.0.1. Я предлагаю попробовать что-то глупое, как 'system (« ping www.domain.com »)' в скрипте, чтобы увидеть, можете ли вы даже маршрутизировать на хост «внутренне». – sarnold
Скручивание работает, если я просто перехожу к публичной части wordpress .. aka www.domain.com. Но если я попытаюсь добраться до администратора (wp-admin), он не даст ответа. – Jason
Если вы ищете асинхронный процесс, почему бы не использовать ajax? cURL * является * синхронным (т. е. ваш php-скрипт будет блокироваться до завершения cURL). –