Как взаимодействовать с Wordpress JSON API с помощью PhP?
Я пытаюсь создать скрипт PhP, который будет автоматически публиковать статью на моем сайте WordPress (я использую CMS WordPress, это не сайт WordPress.com).
Вот что я сделал до сих пор:
Установка плагинов
Я установил и активировал WordPress JSON API и плагины Basic Auth на своем веб-сайте.
Библиотека и код
Я скачал php-библиотеку WP REST и загрузил файлы в 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 для запроса; ответ:
Я не уверен, что ошибка исходит от того, что я неправильно использую библиотеку или нет. Кто-нибудь может мне помочь с этим?
Большое спасибо, ребята!
1 ответ
Для тех, у кого такая же проблема, похоже, что это плагин Basic Auth, который не работает.
Для более эффективного API подключите свой сайт с JetPack к Wordpress.com и используйте их API.
Ура, Артур