こんばんわ!こふそ(@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);
駆け足ですが、以上です。
お仕事について依頼があればご連絡ください。