php – WordPress API提交帖子

我是一名经验丰富的 PHP程序员,熟悉CURL并将其与cookie jar文件一起使用,并且对JSON也很熟悉.

我不熟悉的是WordPress 4.1.1,我的目标很简单:远程调用WordPress网站本地或插件(希望本机),以及:

a)提交文章/帖子,希望如此

b)按用户排序的帖子列表(比较).

从目前为止的研究中我发现你需要登录,也许这是一个两步的过程,包括获取一个nonce,然后用nonce提交帖子.任何人都可以告诉我在API文档下查看哪里,或从哪里开始?

解决方法

您可以使用 XML-RPC API执行此操作,这是一个使用curl的简单示例,它使用 wp.newPost创建一个新帖子:

// initialize curl
$ch = curl_init();
// set url ie path to xmlrpc.php
curl_setopt($ch,CURLOPT_URL,"http://www.example.com/xmlrpc.php");
// xmlrpc only supports post requests
curl_setopt($ch,CURLOPT_POST,true);
// return transfear
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
// setup post data
$content = array(
  'post_type' => 'post','post_content' => 'This is the post content','post_title' => 'This is the post title','post_status' => 'publish',);
// parameters are blog_id,username,password and content
$params = array(1,'<user>','<password>',$content);
$params = xmlrpc_encode_request('wp.newPost',$params);
curl_setopt($ch,CURLOPT_POSTFIELDS,$params);
// execute the request
curl_exec($ch);
// shutdown curl
curl_close($ch);

要获取您可以使用wp.getPosts的帖子列表,尽管您无法按作者过滤帖子,您可以遍历响应中的每个帖子并检查是否应该显示:

// filter used when retreiving posts
$filter = array(
  'post_type' => 'post','number' => 50,'offset' => 0,'orderby' => 'post_title',);
// fields to include in response
$fields = array(
  'post_title','post_author','post_id','post_content',);
$params = array(1,'<username>',$filter,$fields);
$params = xmlrpc_encode_request('wp.getPosts',$params);
// excute query
$response = curl_exec($ch);
// response is xml
$response = simplexml_load_string($response);
// walk over response and figure out if post should be displayed or not

相关文章

文章浏览阅读8.4k次,点赞8次,收藏7次。SourceCodester Onl...
文章浏览阅读3.4k次,点赞46次,收藏51次。本文为大家介绍在...
文章浏览阅读1.1k次。- php是最优秀, 最原生的模板语言, 替代...
文章浏览阅读1.1k次,点赞18次,收藏15次。整理K8s网络相关笔...
文章浏览阅读1.2k次,点赞22次,收藏19次。此网络模型提供了...
文章浏览阅读1.1k次,点赞14次,收藏19次。当我们谈论网络安...