スクリーンショット 2014-08-25 19.32.43

WordPressでajaxの基本的なやり方

WordPressに備わっているajaxについて、手順などをまとめます。もっといい方法、や修正などあったら教えてくださいましな。

今回作ったのは、タクソノミーによる絞込の検索フォームを作成する際に、階層を持つタクソノミーのドロップダウンを2つ用意して、親ターム選択用のドロップダウンでタームが選択されたら、子タームが取得されてもうひとつのドロップダウンの内容が変わる、というものです。

スクリーンショット 2014-08-25 19.32.43

意図する動き

どのように動くのか。

  1. ひとつめのドロップダウンで、タームが選択される
  2. ひとつめのドロップダウンで選択されたタームのIDがWordPressに送信される
  3. タームのIDを受け取ったWordPressが、そのIDのタームの子タームのIDと名前をjsonで返す
  4. IDとタームを受け取ったら、ふたつめのドロップダウンのoptionを書き換える

親タームが選択された、というイベントをきっかけとして、WordPressに親タームのIDを送信して、WordPressからはその親を持つ子タームのIDと名前をjsonで返す、戻ってきたjsonデータをもとに、optionを書き換える、という流れになります。

続きを読む

↓ プラグインを作る方々への本、書きました。 ↓

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

Rewrite APIその2 WordPressでアプリを作る基本(WordPressプラグイン開発のバイブルのボツ原稿から)

WordPressプラグイン開発のバイブルという本がありまして、大絶賛大好評販売中なのですが、ボツ原稿を載せていくシリーズの、Rewrite APIの第二弾です。

書籍のご購入はこちらから。

前回の記事は、Rewrite APIその1 「Rewriteとパーマリンク」(WordPressプラグイン開発のバイブルのボツ原稿から)です。

前回のまとめをさくっと言いますと、WordPressにはパーマリンクという機能があり、カテゴリや日付、ポストIDやpostnameなどを組み合わせて、URLの構造を設定できますが、その機能はウェブサーバーのリライト機能とWordPressのリライト機能が組み合わさって実現されているということでした。

このことは、WordPressプラグイン開発のバイブルの中の第六章「WordPressのデータ構造とクエリを理解する」という章の中でも詳しく解説されていますので読んでみてくださいね。

Rewrite APIを利用することでWordPressをブログでもCMSでもなくアプリケーションプラットフォームとして活用する方法の第一歩でございますですよ。

では、以下、コピペになります。前回同様、校正前のものになります。誤字脱字、間違いはご連絡くださいな。

続きを読む

↓ プラグインを作る方々への本、書きました。 ↓

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

Rewrite APIその1 「Rewriteとパーマリンク」(WordPressプラグイン開発のバイブルのボツ原稿から)

WordPressプラグイン開発のバイブルという本がありまして、大絶賛大好評販売中なのですが、ボツ原稿を載せていきたいと思います。

ご購入はこちらから。

WordPressにたくさんあるAPIのうち、Rewrite APIを取り上げます。ここは、大幅に簡略化したところでして、ものすごく長いのでシリーズ物にしたいと思います。Rewrite APIはWordPressをアプリケーション・プラットフォームとして利用する際にとても便利なものですので、WordPressを使ってアプリを作るぞ!みたいな方々のお役に立てると思います。

第一弾はRewrite APIの前提となる「Rewriteとパーマリンク」の関係についてです。それでは、以下、ボツ原稿です(校正をするまえにボツになったので間違いも含むかもしれません。一応チェックはしました)。

次回は、デフォルトの状態のリライトを拡張して、WordPressをアプリとして動かすための便利関数について紹介します。

続きを読む

↓ プラグインを作る方々への本、書きました。 ↓

pbook-hangout-1

『WordPressプラグイン開発のバイブル』のGoogleHangouts番組を始めました

『WordPressプラグイン開発のバイブル』という本が出ました。

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

著者陣+ゲストでお届けするオンラインのイベントを週に一度のペースでやっていくことになりました。

第一回目は、宮内さんと三好さんと一緒に、GPL、ビジネスモデルなんかの話をしました。録画もあります。

GPLとビジネスモデルの話

pbook-hangout-1

今までに国内で出ているWordPress関連の書籍で、ライセンスの話やビジネスモデルの話の話について書かれているものは、僕が把握している限りなかったと思います(あったら教えてください)。

その理由はまあ色々あるとは思うのですが、その書籍が開発者向けなのか、ユーザー向けなのかというところにあるような気がします。WordPressを使っている人には、本当にいろいろな人がいて、

続きを読む

↓ プラグインを作る方々への本、書きました。 ↓

ec2にs3をマウントしてrsyncした時のメモ

EC2 に S3 のバケットをマウントして、rsync でバックアップをとるのを試してみているのでメモ。

ec2 に s3 をマウントする

Amazon S3 編。S3 バケット を マウント する方法 | EC2 S3 マウント ファイルシステム | ナレコムAWSレシピ

と、

Amazon S3編~S3バケットをファイルシステムとしてマウントしてみよう!~ EC2 S3 s3fs マウント | ナレコムAWSレシピ を参考にしました。

少し困ったのは、アクセスキーとシークレットキーのところ、 IAM という認証の仕組みを使う点で、上記のリンクの説明と違っていたことでした。 IAM については、 IAM とは? – AWS Identity and Access Management に説明も動画もありますが、 AWS アカウント内の限られた権限を持つユーザーを作成して、認証を行うことができるようにするためのサービスです。

今回は、 ec2 サーバ内に S3 関連の操作のみができる IAM ユーザーの認証情報を保存しています。

マウント自体は、 s3fs を利用すると簡単でした。上記のリンクにやり方が書いてあります。インストールするバージョンは、 Downloads – s3fs – FUSE-based file system backed by Amazon S3 – Google Project Hosting で最新のバージョンが確認できました。

rsync してみるとすごく遅かった

rsync でバックアップをしてみたところ、とても遅かったです。vi でファイルを作成して書き込み、保存するのにもレスポンスに1秒ずつか、もうちょっと時間がかかる感じでした。

そこで、ssh での接続が切れたり、ログアウトしたりしたあとも処理を続けてくれるように ログアウトした後もプログラムの処理を続ける?(コマンド実行時にnohup) を参考にしました。

nohup rsync -av /var/www/vhosts/i-nskw/ /mnt/s3/backup/ &

最初はファイルが多いのですが、今後は差分だけなので、今後は毎晩、

  1. マウントする
  2. 必要なデータベースのダンプファイルを作成してどこかに保存
  3. 必要なディレクトリのrsync
  4. マウント解除する

というのをやってくれるのを作ろうと思います。

↓ プラグインを作る方々への本、書きました。 ↓