【PHP】WordPress REST APIを使って自動投稿しよう

2019.12.11 2020.01.10 364
【PHP】WordPress REST APIを使って自動投稿しよう

こんばんわ!こふそ(@koheta0325)です!

今回はWordPress REST APIを使って自動投稿する方法を紹介します。

初期設定

1.Application Passwordsプラグインのインストール&設定

WordPress管理画面より、プラグイン>新規追加を選択。

キーワードに【Application passwords】と入力し、

↓のが画像のようにでてきた、【Application passwords】プラグインをインストール&有効化します。

2.自動投稿用のパスワードの発行

自動投稿用のパスワードを発行します。

ユーザーメニューより、自動投稿したいユーザーの【編集】をクリックします。

ユーザー編集ページにいくと、Application Passwordsを有効化してあると、↓の赤枠のメニューが追加されています。

New Application Password Nameに適当な半角英数字を入力し(多分unkoとかでもOKです)【Add New】をクリックします。

するとパスワードが設定されます。これをメモっておいてください。

3.その他投稿時に必要なパラメータの確認

カテゴリ

投稿時に設定したいカテゴリのIDを調べます。
↓の画像の場合、サイト運営であれば、100です。(複数設定可能)

タグ

カテゴリと同様、タグIDを調べます。

 

アイキャッチ画像

自動投稿で指定したアイキャッチ画像のIDを調査します。

WordPress管理画面より、メディアを選択して、画像一覧が表示されます。

アイキャッチに指定したい画像を選択すると、↓のように画像のIDがURLバーに表示されます。

~~~?item=<画像ID>

サンプルスクリプト


<?php
$url = 'https://<ドメイン名>/index.php/wp-json/wp/v2';

// ユーザー名(Application Passwordsプラグインでパスワードを発行したユーザーのもの)
$username = '***';
// パスワード(Application Passwordsプラグインで発行されたパスワード)
$password = '***';

$data = [
'title' => 'おいしいご飯の炊き方',
'slug' => 'delicious_rice',
'content' => 'おいしいお米とは??~~省略',
'status' => 'publish',//draft
'categories' => [103,159],
'tags' => [105,23],
'featured_media' => 103,
];

// ベーシック認証のためのヘッダ
$header = ['Authorization: Basic ' . base64_encode($username . ":" . $password)];

// cURLのオプション設定(http 非SSLサイトの場合)
$option = [
CURLOPT_URL => $url,
CURLOPT_POST => true,// POST
CURLOPT_POSTFIELDS => http_build_query($data),
CURLOPT_HTTPHEADER => $header,
CURLOPT_RETURNTRANSFER => true,
];

// サンプルのためエラー処理は省略
$ch = curl_init();
curl_setopt_array($ch, $option);
$response = curl_exec($ch);
curl_close($ch);

return json_decode($response);

 

駆け足ですが、以上です。

お仕事について依頼があればご連絡ください。

こふそにDMする(Twitter)