WordPressプラグインを、VCCWを使って初めて作ってみた(1)

 

これはWordPress初心者のための、初めてのプラグイン開発ガイドです。

「プラグイン使う専門だなー」「公式レポジトリはハードルが高そう」と思っているかた読んで下さい。

 

最近WP-CLIコミッターの宮内さん にプラグイン開発の仕方を教えてもらいました。初めてプラグインを作り公式レポジトリに登録しました。その流れを説明します。

 


 

まとめ

    • プラグインをつくると保守が楽になる。
      • 自分でバグを直せる
      • 修正の反映が楽になる
    • どんなものをつくったか?
      • Tw-User-Link
    • まずWP-CLIでコマンドライン環境をつくろう!
      • VCCWをインストール
      • プラグインのひな形作成
      • ユニットテスト用のWordPressを用意
      • 初めてのテストを実行する

 

テストと公開は後半の記事に続きます。

 

プラグインをつくると保守が楽になる。

まず、そもそもなぜプラグインを自作するのか?技術力が上がるというのもちろんですが、

 

プラグインを自作するとサイトの保守も楽になります

 

理由(1):自分でバグを直せる。

他人のプラグインを使っていてバグが起きたら自分で直すことはできません。

自分で作っていたらすぐに修正できます。バグに対する対応のスピードが早くなります。

理由(2):修正の反映が楽になる。

バグが起きたプラグインの代わりに、他のプラグインをインストールするとなったとします。

自分が管理しているサイトが10個程度なら良いですが100個以上になるといちいちログインするのも手間です。

自作プラグインであれば公式ディレクトリに修正をコミットするだけです。

 

実際どんなものを作ったか?

 

Tw User Linkという、記事の中にTwitterのスクリーンネーム (例: )を入力すると、自動でTwitterアカウントへリンクを貼る。

というものです。

 

まずコマンドライン環境をつくろう!

どうやって作ったかを説明していきます。

 

VCCWをインストール

 

まずVCCWを使えるようにしてください。

詳細は割愛しますが、WordPress専門のメディアサイトCapitalPに載っている以下の記事が大変参考になります。

ちなみに、「初心者ナオキ」とは僕のことです。脱初心者頑張ります。

 

記事を参考にVCCWを立ち上げ新しいWordPress環境を用意して下さい。

 

プラグインのひな形を作成

立ち上げたVCCWにsshでログインします。

$ vagrant ssh

 

次に、WordPress がインストールされているディレクトリまで移動します。

$ cd /var/www/html/

 

そして、WP-CLIでプラグインのひな形を生成します。

$ wp scaffold plugin plugin-name
Success: Created plugin files.
Success: Created test files.

 

するとwp-content/plugins 直下に、指定したプラグイン名でプラグインのひな形が生成されています。

 

このディレクトリには、plugin-name.phpというプラグイン本体と、PHPUnitテスト用のファイルが含まれています。

 

テストってよく聞くけど何???

そもそもテストって何?と思いませんか。

ぼくもわかりませんでした。Webデザインをしたり静的サイトを作っているだけだとそこまで必要性がないです。

しかし、プラグインという誰がどう使うかも分からないツールをつくる時はとても大切です。

 

言葉で説明すると、分かりにくいので

Tw User Linkを参考に手を動かしていきましょう。

 

ユニットテスト用のWordPressを用意

ダミーデータを入れたり削除したりとテストをするために、新しくMysqlデータベースを用意します。テストはコマンドラインでデータベースを直接操作するので、Apache等のWebサーバーは必要ありません。

 

まず、新しくデータベースを用意します。

$ bash bin/install-wp-tests.sh wordpress_test root wordpress localhost latest

 

初めてのテストを実行する

 

試しにテストを実行してみましょう。

$ phpunit

 

$ phpunit
Installing...
Running as single site... To run multisite, use -c tests/phpunit/multisite.xml
Not running ajax tests. To execute these, use --group ajax.
Not running ms-files tests. To execute these, use --group ms-files.
Not running external-http tests. To execute these, use --group external-http.
PHPUnit 6.5.8 by Sebastian Bergmann and contributors.
. 1 / 1 (100%)
Time: 1.62 seconds, Memory: 26.00MB
OK (1 test, 1 assertion)

 

となると成功です。

VCCWは自動的にダミーのテストコードを、tests/test-sample.phpに作成してくれているので、こんなことが出来るんですね。

 

とりあえず一旦ここで前半は終わりです。

まとめ

    • プラグインをつくると保守が楽になる。
      • バグを自分で直せる
      • 修正反映が楽になる
    • 実際どんなものをつくったか?
      • Tw-User-Link
    • まずコマンドライン環境をつくろう!
      • VCCWをインストール
      • プラグインのひながたをつくる
      • ユニットテスト用のWordPressを用意
      • 初めてのテストを実行する

 

後半では、自分でテストを書き、プラグインを公式ディレクトリに登録するまでの流れを書いていきたいと思います。

WordPressプラグインを、VCCWを使って初めて作ってみた(2)