WordPress — PHP curl с WP API, отсутствуют данные параметров

У меня есть эта команда curl, которая работает в командной строке для создания поста WordPress

curl --user admin:password -X POST  http://localhost/wordpress/wp-json/posts --data "title=value1&content_raw=value2"

Поэтому я хочу преобразовать в Curl с PHP, этот код, который я пытался

<?php

$username = "admin";
$password = "password";
$host = 'http://localhost/wordpress/wp-json/posts';$data = array(
'title'=>'Test WP API',
'content_raw'=>'Hi this is a test WP API'
);

$process = curl_init($host);
curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_POST, 1);
curl_setopt($process, CURLOPT_POSTFIELDS, $data);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($process);

Однако я продолжаю получать ошибку с этим кодом. Ниже приведен результат CURL

HTTP/1.1 100 Continue

HTTP/1.1 400 Bad Request

Date: Tue, 10 Mar 2015 06:07:13 GMT

Server: Apache/2.4.9 (Win64) PHP/5.5.12

X-Powered-By: PHP/5.5.12

X-Pingback: http://localhost/jknsapc/xmlrpc.php

Expires: Wed, 11 Jan 1984 05:00:00 GMT

Cache-Control: no-cache, must-revalidate, max-age=0

Pragma: no-cache

X-Content-Type-Options: nosniff

Content-Length: 75

Connection: close

Content-Type: application/json; charset=UTF-8

[{"code":"json_missing_callback_param","message":"Missing parameter data"}]

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

Спасибо


ОБНОВИТЬ

Я обнаружил, что этот код работает, мне просто нужно json_encode данных и CURLOPT_HTTPHEADER не нужен

$username = "admin";
$password = "password";
$host = 'http://localhost/wordpress/wp-json/posts';$data = array(
'title'=>'Test WP API',
'content_raw'=>'Hi this is a test WP API'
);

//json encode the data to pass via CURL

$data = json_encode($data);

$process = curl_init($host);
curl_setopt($process, CURLOPT_HEADER, 1);
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_POST, 1);
curl_setopt($process, CURLOPT_POSTFIELDS, $data);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$return = curl_exec($process);

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]