YOKOTA’s diary

最近はドローン関連が多いですが…ECやデータ解析、3Dプリンタなども。

WordPressプラグイン開発に参考となりそうな書籍3冊

プラグイン開発があるので改めて書籍でWordPressプラグイン周りを確認。

どのようなプラグインがもてはやされていて、どのようなお作法や注意点があるのかなどひと通りの確認をしたいと思い以下3冊を選択。

「プロが選ぶ WordPress優良プラグイン事典」ササッとどのようなプラグインがあるかを眺めてから、「サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル」でガッツリとプラグイン開発のイロハをしり、比較や抜け漏れ確認のために、「WordPressによるWebアプリケーション開発」のオライリー本で締めるという想定でした。が、、

プロが選ぶ WordPress優良プラグイン事典

プロが選ぶ WordPress優良プラグイン事典

プロが選ぶ WordPress優良プラグイン事典

2013年の本ですが、知らなかったプラグインも多く有用な物があり参考になりました。
今回は開発目線で色々見たかったので下記ソースを今後参考にさせていただこうと思います。

まずは、「シンプル」「自動」「テンプレート変数埋込」「一括アップロード」「カスタムフィールド」を中心にチェックしたいと思います。

AddQuicktag

https://github.com/bueltge/AddQuicktag functionにざっと書いてしまいそうな内容をGUIのわかりやすい管理画面にしているとてもシンプルなプラグイン。 エクスポート・インポートもあり、とっかかりによいのかと思いました。

Broken Link Checker

72時間などの自動チェックのタイミングがあるので監視方法の参考に。 にしても超高機能だな、これ…

CSV Importer

記事の一括アップロード投稿

Advanced Custom Field

カスタムフィールドのプラグイン

他にもプラグイン開発の参考になりそうなものがたくさんありました。(実際に使えそうなものももちろん)

サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル

サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル

サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル

WordPressプラグイン開発のイロハを教えていただきたくチョイスした一冊。
プラグインとは?からビジネスモデルなども含め幅広く取り揃えてありましたが、私が気になるのは開発時のお作法や環境やツール、保守観点での注意事項などです。

WordPressプラグイン開発の基本となるフックという仕組み

htmlは構造的に上から下に順番に読んでいきますが、WordPressではその至るところで「フック」というポイントが用意されていて、このフックのある場所に機能を追加したり、あるいは、機能を自分の定義する関数に置き換えてあげることが可能です。このアクションフックとフィルターフックという仕組みがプラグイン開発の肝であり、フックについて実例を元にわかりやすく説明されていました。

VCCWでのWordPressプラグイン開発環境構築

本書ではvagrantLAMP環境を簡単に構築する手段として、著者が手がけるVCCWを利用されていました。超簡単に環境構築できてとても便利でした。

一点困ったのは、default.ymlをコピーしてVagrantFileと同じフォルダにsite.ymlを作成し、langをjaに変えたところ正しく起動せず。。一旦vagrant destroyしてからvagrant upし直すとか色々情報は散らばっているもののうまくいかず管理画面から直接言語変更しました。

==> cv.dev: STDERR: Error: The requested locale (ja) was not found.
==> cv.dev: ---- End output of "bash" "/tmp/chef-script20150727-18885-j56vvo" ----
==> cv.dev: Ran "bash" "/tmp/chef-script20150727-18885-j56vvo" returned 1
==> cv.dev: [2015-07-27T07:44:58+00:00] FATAL: Chef::Exceptions::ChildConvergeError: Chef run process exited unsuccessfully (exit code 1)
Chef never successfully completed! Any errors should be visible in the
output above. Please fix your recipes so that they properly complete.

WordPressプラグインのお作法や注意点

  • プラグイン名に同名の物がないようにする
  • 関数や変数名に同名の物がないようにプレフィックスをつける
  • プラグイン名をハイフンでつないでプラグインのディレクトリにする
  • プラグインの場合はプラグインヘッダに「Plugin Name:」を記載する必要あり(コロンとの間にスペースがあるとNG)★例
  • Readme.txtは書きましょう(公開するなら基本英語)
  • PHP, html, CSS, javascript、それぞれのコーディングスタンダードがある [PHP]インデントはタブ、縦位置調整はスペース。if文中と同行に開始括弧{。括弧()の間や演算子の前後には全てスペースを入れる(配列は例外) [PHP]関数名は小文字でヘビ型、クラス名の始まりは大文字、ファイル名は小文字ハイフンつなぎ。 [HTML]W3CのValidationに則る。インデントはタブ。 [CSS]インデントはタブ。セレクタは1行ずつ記載。属性値は小文字、ハイフンつなぎ。 [js]インデントはタブ。JSHintを通してほしい。オブジェクトは短いなら1行で、長いなら行ごとに要素記載。 [js]配列や関数の括弧の間にはスペース。セミコロンは必ず付ける。ifなどのブロックはPHPと同じ ** [js]チェーンメソッドは行ごと

WordPressによるWebアプリケーション開発

WordPressによるWebアプリケーション開発

WordPressによるWebアプリケーション開発

頭に入りにくくちょっと小難しい…。
ある程度、WordPressを用いた開発を行った経験がある方が読むほうが良いと思われます。
が、私が気になっていたのは、「5章のプラガブルなモジュールを開発する」です。

5.プラガブルなモジュールを開発する

「開放/閉鎖原則」コードの設計、実装は、既存のコードにシア証言の変更を加えるだけで新しい機能を追加できるようにしなければならないという原則。既存のコードに変更を加えず、例えば、クラスの継承という形で新機能を追加できるような設計が求められる。

www.oodesign.com

WordPressプラグインは、アクション、フィルター、プラガブル関数により、新機能に対して開かれ、変更に対して閉じた形で開発ができるように思想設計がされているということです。

そのため追加機能は、別個のプラグインで実装すれば、既存のコードに悪影響を及ぼさずに有効化・無効化できると。これをファイルアップロード処理を自動化処理を実例に説明されていました。

しかーし、正直うまく理解できていません。 例えば、元々あるプラグインに追加機能を開発するときにどのように書くのが既存コードに影響を少ないのかなどが本書を読んでも私は理解できませんでした。もう一回読む必要がありそうです。

そこでもう一冊:詳解 WordPress

詳解 WordPress

詳解 WordPress

より良いプラグイン開発のお作法がもやっとした理解になってしまい不完全燃焼のため、さらにもう一冊。
2015年の書籍であり、180ページのオライリー本ということでさっと読み物として読めました。

HTTPリクエストからテーマ、プラグイン、WPコアなどの基本の説明、フックなどの重要概念、管理画面とサイトの違い、などがわかりやすく説明されていました。

「サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル」と近しい内容ですが、WordPress全体についてサッと知るのには最も適している書籍だと思います。

以上、合計4冊のWordPressプラグイン開発本でした〜