如何使用PhP与Wordpress JSON API进行交互?

时间:2015-02-18 18:04:33

标签: php json wordpress api wordpress-json-api

我正在尝试创建一个PhP脚本,该脚本会自动在我的wordpress网站上发布文章(我使用wordpress CMS,它不是wordpress.com网站)。

这是我到目前为止所做的:

插件安装

我已经在我的网站上安装并激活了WordPress JSON API和Basic Auth插件。

图书馆和代码

我已下载了WP REST php Library,我已将src中的文件上传到与我的脚本相同的文件夹中。

这是我的PHP脚本的代码:     

require_once( 'class-wp-rest-client.php' );
require_once( 'class-wp-rest-request.php' );
require_once( 'class-wp-rest-exception.php' );
require_once( 'class-wp-rest-transport.php' );
require_once( 'class-wp-rest-transport-curl.php' );
require_once( 'class-wp-rest-transport-wp-http-api.php' );
require_once( 'class-wp-rest-object.php' );
require_once( 'class-wpapi-rest-object-post.php' );
require_once( 'class-wpapi-rest-object-posts.php' );
require_once( 'class-wpapi-rest-client.php' );


use WP_REST_Client;
use WP_REST_Request;
use WP_REST_Object;
use WP_REST_Exception;
use WP_REST_Transport;
use WP_REST_Transport_WP_HTTP_API;
use WP_REST_Transport_Curl;
use WPAPI_REST_Object_Post;
use WPAPI_REST_Object_Posts;
use WPAPI_REST_Basic_Auth_Client;


$post_data=array(
            'title' => 'New Post',
            'content_raw' => 'This is a test'
        );



$wp_api_client = new WPAPI_REST_Basic_Auth_Client( 'http://example.com', 'login', 'password' );

if ($wp_api_client) echo "connected";

try {

$current_post = WPAPI_REST_Object_Post::initWithId( 1, $wp_api_client );
$current_post_data = $current_post->get();
echo 'Post Title:' . $current_post_data->ID;    

} catch ( WP_REST_Exception $e ) { print_r($e); }

?>

我收到了这个错误:

  

WP_REST_Exception对象([message:protected] =>请求的HTTP错误;响应:

我不确定错误是否来自我没有正确使用库,否则。有人可以帮我这个吗?

非常感谢你们!

1 个答案:

答案 0 :(得分:0)

对于那些有相同问题的人来说,似乎是Basic Auth插件无效。

要获得更好的工作API,请将您的网站与JetPack连接到Wordpress.com并使用他们的API。

干杯, 亚瑟