WordPressの自動化をするための手法です。
ここで取り扱う自動化とはWordPressの記事内容が自動的に更新されたり、記事の追加や編集が行われる方法になります。
目次
WordPressの自動化の手段
最初に、「自動化」を指す定義は「人の手を介さずに更新される物」と私は考えています。
その定義を踏まえてWordPressで自動的に更新される物は以下の手段があります。
- プラグインの機能
- 記事内でショートコード等を追加して表示
- RSSコードブロックでRSSの内容を表示
- JavaScriptでJSONファイル等を読み取り表示
- WordPress REST APIやxmlrpcを使って追加や更新
上記の4つになります。WordPressのデータベース内容を書き換える方法も無くはないですが、少しトリッキーな方法なので今回は除外します。
プラグインやRSSでの表示で済むのであれば簡単ですが、JavaScriptやREST APIの実行、もしくはWordPressプラグインの開発などはプログラミングスキルがなければ出来ません。
今回取り扱うのは「WordPress REST APIやxmlrpcを使って追加や更新」の方法になります。プログラミングをしていく方法です。
WordPressの自動化の方法
「WordPress REST APIやxmlrpcを使って追加や更新」の方法をまとめていきます。
自動化するための流れは以下を想定しています。
- cronやwebhookなどで発火
- プログラムの実行
- データの収集や整形
- WordPressの記事の追加や更新を実行
この一連の流れの中で「WordPressの記事の追加や更新を実行」の手段と方法を対象としています。
実行コード
最初にコードを見せておきます。
<?php
use Vnn\WpApiClient\Auth\WpBasicAuth;
use Vnn\WpApiClient\Http\GuzzleAdapter;
use Vnn\WpApiClient\WpClient;
use GuzzleHttp\Client;
require 'vendor/autoload.php';
$url = 'https://<WordPressのURL>';
$user = '<ユーザー名>';
$pass = '**** **** **** **** **** ****(ユーザーで作成したアプリケーションパスワード)';
$httpClient = new GuzzleAdapter(new Client());
$auth = new WpBasicAuth($user, $pass);
$client = new WpClient($httpClient, $url);
$client->setCredentials($auth);
return $client->pages()->save([
'id' => 80,
'content' => '<marquee>test</marquee>',
]);
投稿ページ = posts、固定ページ = pages と分けられています。上記のコードは固定ページのID 80を更新するプログラムです。
補足情報
WordPressのREST APIの使い方は公式のドキュメントのこちらが詳細にまとまっています。投稿ページや固定ページ以外にも追加や更新の方法があります。
https://developer.wordpress.org/rest-api/
使用しているライブラリはこちら。composerを使ったインストール方法などはこちらに載っています。
https://github.com/varsitynewsnetwork/wordpress-rest-api-client
パスワードはWordPressユーザーでログインした後にアプリケーションパスワードを作成します。WordPress管理画面のここにあります
固定ページのID 80を更新していますが、IDの確認方法はWordPress管理画面で更新したいページの編集画面に遷移すればURLにIDが記載されているので、こちらで確認できます。
この方法だとGutenbergのブロック要素に出来ていないのですが、こちらのブログ記事にある通り、ブロック要素のコメントを記述することで設定できるようです
終わりに
以上、WordPressの自動化のために記事の追加や更新をする方法でした。
この方法であれば手軽に追加や更新が出来ますが、自動化した内容を後で人が編集する運用にはオススメしません。
- 自動化したプログラムで記事を更新
- 手動で記事を更新
- 再度、自動化したプログラムで記事を更新
- 手動で更新した内容は失われる
という欠点があります。
実装次第では回避できますが、それをやるくらいなら別の方法としてWordPressプラグインを作成した方がいいです。
今回の方法では手動で更新しない物を対象としているのと、記事の自動追加をする際に必要な方法です。
やりたい目的を明確にしてから、やりやすい方法を選択していきましょう。
コメントを残す