エンジニアである僕がWordPress関連の開発をするときにお世話になっている情報


# はじめに

WordPress関連の開発をしているときによく参照する情報をまとめました。
個人の備忘録代わりにまとめる目的が強いですが、どなたかのお役に立てばこれ幸い。

なお、WordPressと一口に言いましても、いわゆるWebサービスなので、当然WordPress以外の情報もたくさん参照する必要があります。（例えば、サーバー・デザイン・コンテンツ・広告etc）
が、今回はWordPressに絞った情報になっているのでそういった情報が必要な方は別の記事を参照いただければと思います。

# 対象

WordPress関連の開発・運用をされている方で、以下に該当する方を対象としています。

* なんらかの言語での開発経験がある
* WordPressの基本的な仕組み（WordPressループ・テンプレート階層・フィルタ/アクションの仕組みetc）
* 英語を読める（Google翻訳を駆使しながらでもOK）

# WordPressの情報を探す際の注意点

Googleで検索すれば大抵のことは、出てきますが、情報が古い（WordPressのversionが古い・PHPのversionが古い）可能性があります。自分自身の環境と、調べた記事の環境差異には注意しましょう。

その他にも注意することとしては、

* なんらかの記事で紹介されているサンプルが、自分の環境で不具合を起こすことがある
（フィルタやアクションの干渉）
* セキュリティに関して考慮されていないことがある

結局、ある程度理解が深まってきたら公式ドキュメントを当たるのが、常套手段なのですがいかんせん翻訳が進んでいなかったりするものもあります。
おとなしく、英語サイトを見るのが一番の近道かと。

# WordPress関連の情報

下記の観点で、Webと書籍でそれぞれ情報をまとめてみます。

* PHP
* テーマ開発
* プラグイン開発
* WordPress本体
* 最新動向
* イベント
* セキュリティ情報

## PHP
### 書籍

* 特になし

他の言語経験を元、調べながらPHPを書いています。特に、書籍を読んだ記憶もなく。
PHP初心者向けの書籍はたくさんありますが、中級者以上だとどういった本を読むのか、むしろ教えて欲しいです。

### Web

* [PHP: Hypertext Preprocessor](http://php.net/)
* [正規表現チェッカー](http://okumocchi.jp/php/re.php)

PHP: Hypertext Preprocessorは、PHPの日本版の公式サイトです。Webでやりたいことをぐぐりつつ、このサイトでPHPのメソッドの確認などしてます。正規表現チェッカーは地味にお世話になっています。

## テーマ開発
### 書籍

* [WordPressレッスンブック HTML5&CSS準拠](https://www.amazon.co.jp/dp/4883379248/)
* [エンジニアのためのWordPress開発入門](https://www.amazon.co.jp/dp/B01NH9H2CN)

書籍たくさんでていますね。ですが、実務に即したもの（SEO対策をしている、チーム開発を想定している、開発環境と本番環境をわけている、など）は少ないです。
こういったあたりは会社によって、異なるのでノウハウをまとめにくいのでしょうか。

テーマ開発の流れや、テンプレート階層を理解するために、1冊くらい読んでおくのが良いのではないかと思います。（正直このレベルの本は自分の好みでどれか一冊選べば良いと思います）
エンジニアのための〜は、WordPressのもう少し深い部分を理解しつつテーマ開発するのに役立つかと思います。

### Web

* 特になし

## プラグイン開発
### 書籍

開発環境の構築や、セキュリティの仕組み、国際化など、プラグインづくりの全体像をつかむのに適していました。

* [サイトの拡張性を飛躍的に高める WordPressプラグイン開発のバイブル](https://www.amazon.co.jp/%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AE%E6%8B%A1%E5%BC%B5%E6%80%A7%E3%82%92%E9%A3%9B%E8%BA%8D%E7%9A%84%E3%81%AB%E9%AB%98%E3%82%81%E3%82%8B-WordPress%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E9%96%8B%E7%99%BA%E3%81%AE%E3%83%90%E3%82%A4%E3%83%96%E3%83%AB-%E5%AE%AE%E5%86%85-%E9%9A%86%E8%A1%8C-ebook/dp/B00M939Y0I/ref=sr_1_2?s=books&ie=UTF8&qid=1489464699&sr=1-2&keywords=wordpress+%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3)

### Web

プラグイン開発する時は、フィルターフック/アクションフックの理解（動作のタイミング/順序）がポイントになってきます。
このあたりに来ると、Webでの情報もそうですが、ソースを直接見る必要もあったりしますね。

* [フィルター一覧（日本語）](https://wpdocs.osdn.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3_API/%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%BC%E3%83%95%E3%83%83%E3%82%AF%E4%B8%80%E8%A6%A7)
* [フィルター一覧（英語）](https://codex.wordpress.org/Plugin_API/Filter_Reference)
* [アクション一覧（英語）](https://codex.wordpress.org/Plugin_API/Action_Reference)
* [WordPressのアクションフックの種類と実行順](http://qiita.com/kijtra/items/68a06083d25af8b5a119)

## WordPress本体

### 書籍

オライリー本です。自分の知識の不足している点がないかな？という観点で読めば十分かな。

* [詳解 WordPress](https://www.amazon.co.jp/%E8%A9%B3%E8%A7%A3-WordPress-%E3%83%97%E3%83%A9%E3%82%A4%E3%83%A0-%E3%82%B9%E3%83%88%E3%83%A9%E3%83%86%E3%82%B8%E3%83%BC%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE/dp/4873116783/ref=sr_1_1?ie=UTF8&qid=1489464634&sr=8-1&keywords=wordpress+%E3%82%AA%E3%83%A9%E3%82%A4%E3%83%AA%E3%83%BC)
* [WordPressによるWebアプリケーション開発](https://www.amazon.co.jp/WordPress%E3%81%AB%E3%82%88%E3%82%8BWeb%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA-Rakhitha-Nimesh-Ratnayake/dp/4873117062/ref=sr_1_2?ie=UTF8&qid=1489464634&sr=8-2&keywords=wordpress+%E3%82%AA%E3%83%A9%E3%82%A4%E3%83%AA%E3%83%BC)

### Web

こまったら公式情報をあたりましょう。

* [WordPress Codex日本語版](https://wpdocs.osdn.jp/Main_Page)
* [WordPress Codex英語版](https://codex.wordpress.org/)

## 最新動向
### Web

* http://openstandia.jp/oss_info/wordpress/

## イベント
### Web

* [WordCamp Japan](https://japan.wordcamp.org/)

## セキュリティ情報

WordPressは本体はともかく、プラグインが無数にあり、脆弱性もたくさんあります。
rssにでも登録しておき、自分のサイトで脆弱性を踏んでないか確認しておくのがオススメです。
上はWordPressに特化したサイト、下は広く脆弱性を報告しているサイト。

* [WPScan Vulnerability Database](https://wpvulndb.com/)
* [Japan Vulnerability Notes](http://jvn.jp/jp/)

# まとめ
さすが長年世界中で使われているWordPressです。情報はたくさんあります。
そして、最終的に何かわからないことがあれば、フォーラムに聞きましょう。