WordPress」カテゴリーアーカイブ

WordPress のDB上のサイトURLを一気に変換

WordPress を、別サーバに移行するにあたってサイト URL を変更したい時があります。
例えば、開発環境から本番環境に移行する時とか

そんな時は、以下の SQL 文を発行することで wp_posts 内のデータを一発で置換できます。

UPDATE `wp_posts`
 SET post_content=REPLACE(post_content, "{旧URL}", "{新URL}")
 where post_content like "%{旧URL}%";

ただ wp_options とか wp_postmeta とかにはシリアライズされたデータが入っていることもあるので、これらはそのまま置換するとまずいです。
(シリアライズデータの中には、文字列の長さとかも含まれてるので)
そこで、シリアライズされたデータは一度アンシリアライズしてから置換して、シリアライズした後に DB に書き戻してやる必要があります。
ただ、手作業でこれやってるとかったるいので、それらを自動で行う PHP スクリプトを作りました。
https://gist.github.com/3627972
上記の gist から download するなり raw データを取得するなりして、PHP スクリプトを取得してください。
以下、使い方
続きを読む

WordCamp Tokyo 2012

WordCamp Tokyo 2012 と PHP Conference 2012 に行ってきました

9/15 に大田区産業プラザ PiO で合同開催された WordCamp Tokyo 2012PHP Conference 2012 に行ってきました。
新しい試みのブースも盛況で、中々楽しかったです。
僕はというと PHP カンファレンスの方で「NGINX + PHP」ってセッションをやらせていただいたり(開始時、ぐだぐだになってしまいすいません)、WordCamp Tokyo 2012 の方で「AWS ハンズオン」のお手伝いをさせていただいたりしてました。

PHP カンファレンスでやったセッションのスライドはこちら

回を重ねる毎にドンドン大規模になって行くイベントですが、大きな混乱も無く、今年も非常に楽しかったです。
スタッフとして関わった方々、お疲れさまでした&ありがとうございました。

ブラウザのキャッシュファイルをコントロールする

Web サーバから送出されるデータに Expires ヘッダーを追加して、ブラウザにキャッシュを持たせることで体感速度をあげてやるということは、良く行われていますね。
実際にどうやって設定するかは、以下のエントリで説明しています。

で、この時さらにキャッシュを長期間持ってもらおうと思って1年とか10年とか、とにかく長い有効期限を設定したりするわけです。
そうすると、困ったことに style.css とか修正しても、いつまでもブラウザのキャッシュが消えなくて、変更が反映されないとかいう事態も発生してしまう訳ですね。
そんな時は、名前を変えるとかクエリー文字列を変えるとかしてやれば良い訳です。
ただ style.css とか修正した時に、header.php の方を修正し直すのを忘れちゃうこともあるので、これを自動で更新して、ブラウザのキャッシュをコントロールしてあげようかという提案です。
続きを読む

Nginx Cache Controller

Nginx Cache Controller ver.1.1.4 をリリースしました

Nginx Cache Controller の 1.1.4 をリリースしました。
今回の修正では、以下の変更を行っています。

  • キャッシュ削除時にアクションフックを追加

これだけです。
ただ、このアクションフックを使用することで複数台構成にしている WordPress のサーバのキャッシュを一括で消せるようになります。
以下、やりかた。
続きを読む

WordPress で特定のプラグインを必ず有効にする方法

WordPress で、必ず有効にしておきたいプラグインがある場合、wp-content/mu-plugins というサブディレクトリを作って、その中に有効にしておきたいプラグインを入れておきます。
例えば、クライアントに納品した WordPress サイトで必ず有効にしておいてほしいプラグインがある場合、mu-plugins に入れておくと便利です。
しかし、残念ながら wp-content/mu-plugins に入っているプラグインは、ダッシュボードからアップデートしたりすることができません。

その問題を解決するために、特定のプラグインを必ず有効にしておくプラグインをさくっと書いてみました。
特定のプラグインを有効にするプラグイン — Gist
適当な名前で保存して wp-content/mu-plugins に入れておくと、特定のプラグインを必ず有効にしてくれます。
続きを読む

WordPress を使いこなそう

WordPress 高速化についてなんかしゃべってきました

「WordPress を使いこなそう」というタイトルで、WordPress の高速化について Apple Store Ginza のシアターイベントでしゃべってきました。
使用したスライドは、slideshare にアップロードしてあるので、そちらも見てみてください。

網元で Ktai Style とか使う時の注意点

この前リリースした網元ですが、そのまま使うと Ktai Style とか WP Touch とかを使ってる場合、リバースプロキシキャッシュを効かせると、うまいこと動きません。

おでこんにも突っ込まれました。

ってわけで、その辺もろもろを解消するための設定方法を書いておきますね。
続きを読む

EC2 に関連する主要コンポーネント

WordPress 専用高速 AMI “網元” はじめました

AWS でサーバを動作させるには Amazon EC2 (Amazon Elastic Compute Cloud) でインスタンスを立ち上げる必要があります。
VPS とかと同様にまっさらな OS イメージでマシンを立ち上げて環境構築しても良いんですが、WordPress でしか使わないとか用途が決まってる場合、毎回そんなことやってるのもメンドクサイし苦痛です。こっちは、素早くサーバをたちあげたいんじゃ!
ってわけで、AWS には Amazon Machine Image (AMI) って仕組みがあります。
これは、構築済みのサーバイメージを利用して、まったく同じ環境のインスタンス(サーバ)を高速に立ち上げるための仕組みです。
Digitalcube でも、これを利用して迅速にサーバを構築しているのですが、そこで使っているパフォーマンスチューニング済みの AMI を公開して使ってもらうことにしました。
それが、"網元"サービスです。

とりあえず、第一弾として EC2 の一番安いインスタンス t1.micro で WordPress を動作させるためにチューニングした AMI を公開しました。
AWS さんでは新規にアカウントを作成すると、1年間は t1.micro を無料で利用できるようなので、気になる人は使ってみてください。

デモ: http://demo.ninjax.cc/
デモサーバは、AWS の東京リージョンで動作しています。
また、最近βリリースした CDN 提供サービス WP Booster も導入してあります。
続きを読む

Word Volcano 2012 SUMMER

Word Volcano Kagoshima 2012 に行ってきました

マルヤガーデンズっていうショッピングモール(デパート?)を会場にして開催されたんですが、これも新鮮でした。
隣のカフェラウンジでドリンク買って飲みながらセッション聞いたり、中々自由な感じです。
こういう雰囲気もいいっすね。

WordPress on クラウド私はぶらぶらしながら、AWS さんと Nao さんのハンズオンの手伝いしたりしてました。
Digitalcube で提供を開始する WordPress 専用高速 AMI "網元" を使ってもらったんですが、好評だったようでうれしかったです。
これは、AWS の t1.micro インスタンスで WordPress を動作させるためにチューニング済みの AMI ですが、後で別記事で詳細説明しますね。
「WordPress が遅いとは言わせない!」を合い言葉に作った奴です。
(一度は「これ、ただで公開するとまずいんちゃう」と、代表に言われてしまった子です。)

続きを読む

My Clip

久しぶりに WordPress Plugin の新作を作りました。
公式プラグインディレクトリには、まだ登録してないので、ダウンロードは github からどうぞ。

wokamoto/my-clip

概要

ユーザがサイト内の気になる記事を clip しておいて、後でリストから見直すことができるようにするプラグインです。
dogmap.jp でも動作していますが、各記事の右上に clip というリンクがあると思います。
これをクリックすると、サイドバーの「My Clip」という所に記事のリンクが追加されていきます。

clip した記事の ID をブラウザの cookie に記憶させておいて、これを表示しています。

使い方

プラグインを有効化した後、ウィジェット「My Clip」をサイドバーに追加してください。

続きを読む