(WordPressの知識がほとんどない状態ですが手探りでプラグインを書き始めました。以下の文章にはおかしな点があるかもしれません。)
WordPressプラグインで記事を書き換える処理を行う場合、フックやフィルターという機能を使うようです。WordPressのプラグインには様々なタイミングで処理を差し込む機会が与えられており、アクションフック、フィルタ、ショートコードといった機能が今回作るプラグインに関連があります。
初めにまずショートコードを使って、記事閲覧時にリクエストがあった際に、サーバ側でGoogle Books APIを叩いて本の情報を取得する実装を行いました。これはWP-Nocodoのソースを見ながら処理を本の情報取得に置き換えていき実装できました。
しかし、Google Books APIにクエリを投げられるのが1日1000回までという制限があるため、記事が閲覧されるごとにサーバ側でAPIにアクセスすると、記事の閲覧数が多い場合にこれをオーバーしてしまう可能性があります。
そこで記事を書いて保存したタイミングで本の情報を取得しタグを挿入することを検討してみました。少し試してわかったのですが、これでは記事を書いて保存すると、その記事中にタグが大量に入ってしまい、記事の編集・変更がとてもやりにくい状態になってしまいまいした。
なにかいい方法がないかと検索していたところ、Otenkiという記事を書いたときにその時の天気を取得しておいて表示するプラグインが見つかり、作者の方が実装過程を詳しく解説されていたので、これを参考にすることにしました。
WordPress 徹底解析(アクションフックのプラグインをつくる編)
記事を書いて保存したときに、APIでその日の天気を取得して、カスタムフィールドという記事に付随するデータベースエントリにこれを書き込んでおきます。ブログにアクセスがあり記事を表示するときには、このカスタムフィールドからデータを取得して表示します。なるほど。カスタムフィールドを使うことで、記事の原稿はクリーンなまま記事に情報を添付しておいて、記事の出力時にはそれを参照してタグを書き込む・・・ということですね。
Otenkiのソースを見ながら記事を保存したときにAPIで本の情報を取得して、記事にアクセスがあったときに出力にタグを書き出すという処理を実装しました。これでAPIへのアクセスは記事を保存したときだけになるので、APIの1日1000回までの制限を気にせず安心して使えるようになりました。