我的wordpress wp-api测试数据中缺少什么?

时间:2014-10-09 15:27:11

标签: php api wordpress

我正在使用wp-api进行测试,顺便说一句,我很兴奋。这就是我所做的。

  1. 安装了wp-api并验证我可以使用cURL从网站上获取
  2. 已安装基本身份验证,为此测试创建了一个编辑级帐户。
  3. 我尝试使用chrome中的cURL和Postman更新帖子。 我的标题: -Content-Type:application / javascript - 文件中的数据 我不确定是否还有其他标题我缺少。 cURL和邮递员都在我的基本身份验证中处理用户名和密码。
  4. 我的JSON

    {  
        "title":"Hello Updated World!",
        "content_raw":"Howdy updated content.",
        "date":"2013-04-01T14:00:00+10:00"
    }
    

    直接来自wp-api docs

    中的示例

    我一直得到的错误是

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

    查看github上的源代码,看起来缺少必需参数

    根据documentation标题和内容raw似乎是唯一必填字段。如果您有任何建议,我很想知道我错过了什么。感谢。

2 个答案:

答案 0 :(得分:0)

您也可以尝试使用此插件来使用Wordpress网络服务,使用它也可以创建自定义网络服务:

https://wordpress.org/plugins/json-api/

答案 1 :(得分:0)

这是我用PHP / cURL调用本地WP-API的代码:

$endpoint = 'http://localhost/my-site/wp-json/wp/posts';
$username = 'test-user';
$password = 'test-pass';

$data = array(
    'title'         => $post_title,
    'content_raw'   => $post_content,
    'status'        => 'publish',
);
$json_data = json_encode($data);

$ch = curl_init($endpoint);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json',
    'Content-Length: ' . strlen($json_data),
));

$result = json_decode(curl_exec($ch));

要更新这篇文章,我会将我的数据更改为:

$data = array(
    'ID'            => $post_id,
    'title'         => $new_title,
    'content_raw'   => $new_content,
);

ID是更新时的必填字段。