WordPressにPHPで記事を投稿する方法

投稿者: | 2016年12月13日

「The Incutio XML-RPC Library for PHP」を利用して記事を投稿する方法です

<?php
require_once ('IXR_Library.php');

$url      = '';
$username = '';
$password = '';
$status   = 'publish';
$title    = '';
$content  = '';
$excerpt  = '';
$catgory  = array("catgory");

$client = new IXR_Client($url . "/xmlrpc.php"); // 投稿先のURL

// 記事を投稿する
$res = $client->query(
             "wp.newPost",                      // API
             1,                                 // blogID:1、マルチサイト時に変更する
             $username,                         // ユーザー名
             $password,                         // パスワード
             array(
                'post_author'  => $username,    // 投稿者ID(未設定の場合は投稿者名無し)
                'post_status'  => $status,      // 投稿状態
                'post_title'   => $title,       // タイトル
                'post_content' => $content,     // 本文
                'post_excerpt' => $excerpt,     // 抜粋
                'terms_names'  => array(
                    'category' => $catgory)     // カテゴリ追加
	     ));

if(!$res){

   echo $client->getErrorCode().' : '.$client->getErrorMessage()."\n";

} else {

   $postid = $client->getResponse();            // 投稿IDが返却される
   echo $postid."\n";

   // 投稿した記事(URL)を取得する
   $res = $client->query(
                "wp.getPost",                   // API
                1,                              // blogID:1、マルチサイト時に変更する
                $username,                      // ユーザー名
                $password,                      // パスワード
                $postid                         // 投稿ID
             );

   $res = $client->getResponse();
   echo $res["link"]."\n";

}

?>