如何使用 PhP 与 Wordpress JSON API 交互?
How to interact with the Wordpress JSON API using PhP?
我正在尝试创建一个 PhP 脚本,它将自动 post 我的 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 Object ( [message:protected] => HTTP error for request; response:
我不确定错误是因为我没有正确使用库还是其他原因。任何人都可以帮助我吗?
非常感谢你们!
对于遇到相同问题的人,似乎是 Basic Auth 插件无法正常工作。
为了更好地工作 API,将您的站点与 JetPack 连接到 Wordpress.com 并使用他们的 API。
干杯,
亚瑟
我正在尝试创建一个 PhP 脚本,它将自动 post 我的 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 Object ( [message:protected] => HTTP error for request; response:
我不确定错误是因为我没有正确使用库还是其他原因。任何人都可以帮助我吗?
非常感谢你们!
对于遇到相同问题的人,似乎是 Basic Auth 插件无法正常工作。
为了更好地工作 API,将您的站点与 JetPack 连接到 Wordpress.com 并使用他们的 API。
干杯, 亚瑟