最新コラム
-
-
-
-
-
Webサイト制作Web開発
【shopify】テーマをカスタマイズするためのLiquidの書き方
-
Webサイト制作Webデザイン
Webデザインの初心者必見!Webデザインの勉強方法を徹底解説
現在、公開されている全WEBサイトの内約40%がWordPressで作られていると言われています。
WordPressで作られたサイトはm通常のWEBサイトだけでなくECサイトやレビューサイト等も存在します。
これらはプラグインを導入するだけで同様の機能が作成できるようになっており導入コストが低くとても運用しやすいです。
しかし、WordPressを使い込んでいくと殆どの作業で管理画面からの操作が必要になります。
そんな時、WordPressもPHPで作られているのだからPHPでバッチ処理を作りたいと思ったことはないでしょうか?
今回はPHPでWordPressのバッチを作成する方法「WP-cli」について解説していきます。
目次
WP-cliとはWordPress管理用のコマンドラインインターフェースです。
様々な企業のサポートにより現在(2021年12月)もメンテナンスさています。
WP-cliを利用する事で、用意されたコマンドを利用する事ができます。
また、デフォルトで用意されているコマンド以外にも自分で作成したプログラムを動作させる事ができます。
WP-cliで動作したプログラム内ではWordPress内で用意されている関数が利用できる為、投稿の取得やカスタムフィールドの取得。
更には、新しい記事の投稿やカスタムフィールドの更新等まで行えてしまいます。
また、WP-cliのコマンドはcrontabに設定できる為、時限式に動作させる事も可能です。
まずはWP-cliの導入方法を説明いたします。
以下の手順で基本的な環境で導入できると思います。
コマンドの細かいパスなどは導入する環境によって変わる為適宜変更してください。
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar sudo mv wp-cli.phar /usr/local/bin/wp
wp --info
このコマンドでWP-cliの状態のメッセージが表示されたら導入成功となります。
WP-cliは導入するだけで様々なコマンドがすぐに使用できます。
自作のバッチを作らなくても、こちらのコマンドをcrontab等で時限設定するだけで今までWordPressだけではできなかった制御が出来るようになります。
以下はその一例となります。
wp theme activate テーマ名
wp theme update テーマ名
wp theme update --all
wp plugin update プラグイン名
wp plugin update --all
wp plugin activate プラグイン名
wp plugin deactivate プラグイン名
wp cache flush
コマンドの全ては公式ページのコマンド一覧を参照してください。
前項でWP-cliが用意してくれているコマンドを紹介しましたが、やはり自分で思う通りのバッチを作りたいと思います。
ここではその方法を紹介いたします。
ymlファイルにファイルの位置を配置する為、ファイルはどこに配置しても構いません。
クラスファイルは以下の様な形で記載します。
この際、作成したクラス内の関数をコマンドで実行する為、起動用の関数を作成する事をおすすめします。
<?php /** * SendMail command. */ class TestCommand extends WP_CLI_Command { function hoge() { } } // コマンド名と作成したクラスを関連付ける WP_CLI::add_command( 'test', 'TestCommand');
ymlファイルの配置場所はコマンドのパスを通した場所に配置します。
ymlファイル内には以下の記載をします。
require: - 実行するクラスファイルのパス
ここまで準備が完了したら、コマンドが実行できます。
今回の場合は以下のコマンドで実行できます。
wp test hoge
ここまでの解説で多くのサーバーでの導入は完了していると思います。
しかし、WordPressはレンタルサーバー等でも使われる事が多いです。
その為、sudo権限が得られずにWP-cliをwpコマンドとしてパスが通せない場合もあります。
せっかくWordPressが使えているのにコレはもったいないと思います。
その為、この項目ではパスを通さなかった場合の解説を行います。
xserverで導入した場合、デフォルトで設定されているPHPのバージョンが古いです。
その為、こちらの解説では使用するPHPも指定して動作させます。
環境によっては使えるPHPのバージョンが異なる為、調整してください。
/usr/bin/php7.2 ファイルのパス/wp-cli.phar --info
ymlファイルを実行する場所に配置して以下のコマンドを実行する
/usr/bin/php7.2 ファイルのパス/wp-cli.phar test hoge
パスを通していない場合、ymlファイルが読み込まれません。
その為、設定するコマンド内に読み込むファイルを直接記載します。
同様に実行したいWordPressのパスも記載する。
ymlに記載している内容はオプションとしてコマンド実行時に記載する事ができます。
逆も同じなので、実行するWordPressの配置場所はymlが読み込まれる場合はymlに記載しても問題ないです。
以下の設定で毎分起動する様になります。
詳しくはcrontabの設定方法を参照ください。
* * * * * /usr/bin/php7.2 ファイルのパス/wp-cli.phar test hoge --path=実行するWordPressの配置場所のパス --require=実行するクラスファイルのパス
ここまででWP-cliは導入できたと思います。
WP-cliは現在WordPressではできない事を出来るようにしてくれます。
個人的に便利な活用方法としては、メールマガジン等の運営に使用するととても活用出来るかと思います。
記事をメールと見立てて、カスタムフィールドを宛先にする等細かい設定が出来ると思います。
カスタムフィールドをデータベースの様に使用すればWordPressの可能性が拓けていけるのではないでしょうか?