Я создал собственный файл шаблона без заголовка / нижнего колонтитула.
<?php
/*
Template name: API
*/
?>
<?php
echo $_POST['name'];
?>
Я удаленно соединяюсь с CURL для публикации поля имени.
$ch = curl_init('mywebsite.com/test-page/');
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,"name=Jason");
curl_setopt($ch,CURLOPT_HEADER,true);
$result = curl_exec($ch);
curl_close($ch);
Заголовки ответа:
HTTP/1.1 302 Found Date: Tue, 30 Sep 2014 12:50:29 GMT Server: Apache/2.2.26 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.6 PHP/5.5.10 mod_ssl/2.2.26 OpenSSL/0.9.8za DAV/2 mod_perl/2.0.8 Perl/v5.18.2 X-Powered-By: PHP/5.5.10 Expires: Wed, 11 Jan 1984 05:00:00 GMT Cache-Control: no-cache, must-revalidate, max-age=0 Pragma: no-cache Location: http://<mysite>/wp-login.php Content-Length: 0 Content-Type: text/html; charset=UTF-8
Проблема в том, что WordPress перенаправляет этот запрос Curl на страницу входа в WordPress. Это странно, поскольку для этой страницы не требуется вход в систему. Как это решить?
Решил это, изменив:
curl_setopt($ch,CURLOPT_POSTFIELDS,"name=Jason");
к
curl_setopt($ch,CURLOPT_POSTFIELDS,"othervar=Jason");
Использование ‘name’ в качестве переменной $ _POST вызывает перенаправление 302.
Других решений пока нет …