我是一名经验丰富的
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