<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>dogmap.jp</title>
	<atom:link href="http://dogmap.jp/feed/" rel="self" type="application/rss+xml" />
	<link>http://dogmap.jp</link>
	<description>独断と偏見の何でもレビュー。since Feb. 27, 2005</description>
	<pubDate>Thu, 11 Mar 2010 03:34:36 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<image>
	<url>http://dogmap.jp/wp-content/themes/dogmap/images/dogmap_logo.jpg</url>
	<title>dogmap.jp</title>
	<link>http://dogmap.jp</link>
	</image>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://dogmap.jp/feed/" />
	<atom:link rel='hub' href='http://dogmap.jp/?pushpress=hub'/>
		<item>
		<title>WordCamp Fukuoka 2010 に行ってきました</title>
		<link>http://dogmap.jp/2010/02/27/wordcamp-fukuoka-2010/</link>
		<comments>http://dogmap.jp/2010/02/27/wordcamp-fukuoka-2010/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 23:59:32 +0000</pubDate>
		<dc:creator>をかもと</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[旅]]></category>
		<category><![CDATA[身辺雑記]]></category>
		<category><![CDATA[WordCamp]]></category>
		<category><![CDATA[福岡]]></category>

		<guid isPermaLink="false">http://dogmap.jp/?p=2338</guid>
		<description><![CDATA[2/27(土)に博多で開催された、WordCamp Fukuokaに行ってきました。
前回開催された WordCamp Kyoto ではスタッフとして参加させてもらったんですが、今回は一参加者として参加。
以前から、お会 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.dogmap.jp/2010/03/wcfukuoka2010_1.jpg" title="WordCamp ケーキ" rel="lightbox"><img src="http://static.dogmap.jp/2010/03/wcfukuoka2010_1-160x107.jpg" alt="WordCamp ケーキ" title="WordCamp ケーキ" width="160" height="107" class="alignright size-thumbnail wp-image-2339" border="0" align="right" /></a>2/27(土)に博多で開催された、<a href="http://2010.wordcampfukuoka.com/" title="WordCamp Fukuoka 2010: WELCOME TO FUKUOKA WORDCAMP 2010!">WordCamp Fukuoka</a>に行ってきました。<br />
前回開催された <a href="http://dogmap.jp/2009/10/17/wordcamp-kyoto-2009-2/" title="WordCamp Kyoto 2009 に行ってきました : dogmap.jp">WordCamp Kyoto</a> ではスタッフとして参加させてもらったんですが、今回は一参加者として参加。<br />
以前から、お会いしたいと思っていた福岡の <a href="http://twitter.com/evian" title="海老庵 (evian) on Twitter">@evian</a> さんや、<a href="http://twitter.com/Yunoji" title="Yunoji (Yunoji) on Twitter">@Yunoji</a> さんにも、散々遊んでいただきました。感謝。<br />
セッションも楽しかったんですが、その後の懇親会、<a href="http://www.zimenu.jp/SNS/zishop_main.php?shopID=1839" title="AIPカフェ AIP cafe 福岡市 中央区 大名 1丁目14-28 その他 高度IT人材アカデミー / AIP / 紺屋2023 AIPカフェ AIP cafe">AIP cafe</a>での二次会、<a href="http://maps.google.co.jp/maps/place?hl=ja&amp;source=hp&amp;lr=&amp;oq=&amp;um=1&amp;ie=UTF-8&amp;q=%E7%A6%8F%E5%B2%A1+%E3%82%84%E3%81%BE%E3%81%A1%E3%82%83%E3%82%93&amp;fb=1&amp;gl=jp&amp;hq=%E3%82%84%E3%81%BE%E3%81%A1%E3%82%83%E3%82%93&amp;hnear=%E7%A6%8F%E5%B2%A1&amp;cid=16372209816056507414" title="長浜屋台やまちゃん - Google マップ - 地図検索">長浜屋台やまちゃん</a>での三次会、楽しかったっす。<br />
来年もまた行きたい。待ってろよ、福岡！</p>
<p>イベントの詳細な内容は他の方にお任せします。この辺を参照してください。</p>
<ul>
<li><a href="http://gihyo.jp/news/report/2010/02/2701" title="レポート：WordCamp Fukuoka 2010最速レポート（随時更新）｜gihyo.jp … 技術評論社">レポート：WordCamp Fukuoka 2010最速レポート（随時更新）｜gihyo.jp … 技術評論社</a></li>
<li><a href="http://detlog.org/archives/1101" title="detlog.org » WordCamp Fukuoka、お疲れ様でした！">detlog.org » WordCamp Fukuoka、お疲れ様でした！</a></li>
<li><a href="http://www.odysseygate.com/archives/1556" title="WordCamp Fukuoka 2010 に参加しました / スライド公開「Duotone の子テーマを作ろう、そうしよう 」 | Odysseygate.com">WordCamp Fukuoka 2010 に参加しました / スライド公開「Duotone の子テーマを作ろう、そうしよう 」 | Odysseygate.com</a></li>
<li><a href="http://waviaei.com/2010/03/10/went-to-wordcamp-fukuoka-2010/" title="WordCamp福岡に行ってきました！ « Waviaei">WordCamp福岡に行ってきました！ « Waviaei</a></li>
</ul>
<p><span id="more-2338"></span></p>
<p><a href="http://static.dogmap.jp/2010/03/wcfukuoka2010_3.jpg" title="Noël さん、プレゼン中" rel="lightbox"><img src="http://static.dogmap.jp/2010/03/wcfukuoka2010_3-160x107.jpg" alt="Noël さん、プレゼン中" title="Noël さん、プレゼン中" width="160" height="107" class="alignleft size-thumbnail wp-image-2341" border="0" align="left" /></a>今回、一番楽しみにしていたのは <a href="http://wordpress.org/extend/themes/p2" title="WordPress › P2 « Free WordPress Themes">WordPress テーマ P2</a> 作者の <a href="http://noel.io/" title="Noël - DJ, Producer, Designer, Polymath">Noël</a> さんの来日。<br />
P2の日本語リソースを作ったんで、彼とは何回かメールのやり取りをしたことがあるんですが、あまりくだけた話はしたことが無かった。<br />
ぜひ、お知り合いになりたいと思っていたんだけども、いかんせん英会話ができない。<br />
結局、彼を目の前にしたときは名刺交換するのがやっとで会話できなかった。悔しいなぁ。<br />
簡単な英会話くらいはできるようになりたい！<br clear="all" /></p>
<p><a href="http://static.dogmap.jp/2010/03/wcfukuoka2010_2.jpg" title="ジーニアスバーにてNedさんと" rel="lightbox"><img src="http://static.dogmap.jp/2010/03/wcfukuoka2010_2-160x107.jpg" alt="ジーニアスバーにてNedさんと" title="ジーニアスバーにてNedさんと" width="160" height="107" class="alignright size-thumbnail wp-image-2340" border="0" align="right" /></a>ジーニアスバーや二次会のAIPカフェで<a href="http://twitter.com/1080d" title="1080d (1080d) on Twitter">Ned</a>さんと色々な話ができたことは、すごい刺激になりました。<br />
第一線で、バリバリやってる人と話ができたのは楽しかったっす。<br />
# 彼が日本語ペラペラだったので会話できました。<br />
<a href="http://itlifehack.jp/archives/2705564.html" title="日本と海外の技術の架け橋に！Time, Incを辞めて日本にくるエンジニアは愛妻家【注目クリエイター列伝】 - ITライフハック">近いうちにヌーラボに移籍する</a>そうなので、とても楽しみです。<br />
私が WordPress 公式プラグインディレクトリで公開している<a href="http://wordpress.org/extend/plugins/profile/wokamoto" title="WordPress › wokamoto « WordPress Plugins">いくつかのプラグイン</a>も、たまに海外の方から質問が飛んできたりするんですが、そのサポートが中々大変。<br />
たまにNedさんに相談にのってもらおうとかたくらんでます。<br clear="all" /></p>
<p><a href="http://static.dogmap.jp/2010/03/wcfukuoka2010_4.jpg" title="長浜屋台やまちゃん" rel="lightbox"><img src="http://static.dogmap.jp/2010/03/wcfukuoka2010_4-160x106.jpg" alt="長浜屋台やまちゃん" title="長浜屋台やまちゃん" width="160" height="106" class="alignleft size-thumbnail wp-image-2342" border="0" align="left" /></a>懇親会・AIPカフェでの二次会終わって、〆は長浜屋台やまちゃん。<br />
翌日、<a href="http://event.67.org/wordpress/201002/" title="実験！WordPressラボラトリー | ロクナナワークショップ イベント企画">東京のイベント</a>に出席するはずの<a href="http://www.10press.net/" title="め組｜WordPressテーマ［CMS構築テンプレート］">め組</a>の二人もやってきて、あんたら朝早いんじゃないかいと。<br />
ここも旨かった。絶品のレバ刺、カンパチ刺、焼き明太子を肴に芋焼酎「黒霧島」をちびちびと。<br />
連れて行ってくれた<a href="http://boxandneedle.net/" title="BOX AND NEEDLE">ちゃげさん</a>、<a href="http://shinji-labo.net/blog/" title="@NoBlog30 | Shinji Design Laboratory">SDLaboさん</a>ありがとう！<br />
福岡に行ったら、また遊んでください。<br clear="all" /></p>
<p>なお、文中の写真は<a href="http://www.odysseygate.com/" title="Odysseygate.com | WordPressでつづる、おでのこの道わが旅。">おでさん</a>、<a href="http://lovelog.eternal-tears.com/" title="Lovelog+* | WordPress テーマ">てぃあさん</a>と<a href="http://waviaei.com/" title="Waviaei">Toruさん</a>の Flickr から使わせていただきました。<br />
福岡で一緒に遊んでくれた三人にも感謝！</p>
<ul>
<li><a href="http://www.flickr.com/photos/odysseygate/sets/72157623553556226/" title="wordcampfukuoka2010 - a set on Flickr">wordcampfukuoka2010 &#8211; a set on Flickr</a></li>
<li><a href="http://www.flickr.com/photos/eternal-tears/sets/72157623564674690/" title="WordCamp 福岡 - 2010年2月27日 - a set on Flickr">WordCamp 福岡 &#8211; 2010年2月27日 &#8211; a set on Flickr</a></li>
<li><a href="http://www.flickr.com/photos/waviaei/tags/wcfukuoka2010/" title="Flickr: toru@waviaei's stuff tagged with wcfukuoka2010">Flickr: toru@waviaei&#39;s stuff tagged with wcfukuoka2010</a></li>
</ul>
<a href="http://maps.google.com/maps?f=q&amp;hl=ja&amp;geocode=&amp;q=33.585024,130.357749&amp;ie=UTF8&amp;ll=33.585024,130.357749&amp;t=h&amp;z=15&amp;t=n&amp;maptype=G_NORMAL_MAP" title="西南学院大 (福岡県福岡市早良区西新３丁目１２−２４)"><img src="http://maps.google.com/staticmap?markers=33.585024,130.357749,red&amp;zoom=15&amp;size=400x200&amp;key=ABQIAAAAdkdXbSzAaW3Z-fZ0VLiA-BTNLsTCkgAHG6R1rGrc2jhIZmfrTxQ-ueNTQFYw3AGOgb5OImln4sk1QA&amp;hl=ja" alt="西南学院大 (福岡県福岡市早良区西新３丁目１２−２４)" title="西南学院大 (福岡県福岡市早良区西新３丁目１２−２４)" /></a>
]]></content:encoded>
			<wfw:commentRss>http://dogmap.jp/2010/02/27/wordcamp-fukuoka-2010/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://dogmap.jp/2010/02/27/wordcamp-fukuoka-2010/" />
	</item>
		<item>
		<title>Twitter OAuth 対応の話</title>
		<link>http://dogmap.jp/2010/02/16/twitter-oauth/</link>
		<comments>http://dogmap.jp/2010/02/16/twitter-oauth/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 12:35:26 +0000</pubDate>
		<dc:creator>をかもと</dc:creator>
				<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[Simple Tweet]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://dogmap.jp/?p=2330</guid>
		<description><![CDATA[私が作成した Twitter 通知用 WordPress プラグイン「Simple Tweet」ですが、Ver.1.3.0 から Twitter OAuth に対応しました。
また、先行してFMのオンエア曲を流すbotも [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.dogmap.jp/2010/02/BASIC-Auth-deprecation.png" title="BASIC Auth deprecation" rel="lightbox"><img src="http://static.dogmap.jp/2010/02/BASIC-Auth-deprecation-160x96.png" alt="BASIC Auth deprecation" title="BASIC Auth deprecation" width="160" height="96" class="alignright size-thumbnail wp-image-2331" border="0" align="right" /></a>私が作成した Twitter 通知用 WordPress プラグイン「<a href="http://wordpress.org/extend/plugins/simple-tweet/" title="Simple Tweet">Simple Tweet</a>」ですが、Ver.1.3.0 から Twitter OAuth に対応しました。<br />
また、先行して<a href="http://dogmap.jp/2009/09/01/now-on-air/" title="Now On Air : dogmap.jp">FMのオンエア曲を流すbot</a>も OAuth 対応しました。<br />
これは Twitter の BASIC認証が2010年6月に廃止予定との情報を受けての対応です。</p>
<blockquote><p>2010年6月から Twitter API の BASIC 認証が deprecated になるとのこと。</p>
<p>Deprecated というのは「非推奨」「廃止予定」という意味で<br />
これを見る限りでは6月に即廃止ということではないと思いたいんだけど<br />
少なくとも正式にはサポートされないということなので<br />
その後はいつ廃止されてもおかしくない。</p>
<p><cite><a href="http://www.msng.info/archives/2010/01/twitter_api_basic_auth_deprecation_in_june_2010.php" title="Twitter APIのBASIC認証は2010年6月に「廃止予定」 - 頭ん中">Twitter APIのBASIC認証は2010年6月に「廃止予定」 &#8211; 頭ん中</a></cite></p></blockquote>
<p><span id="more-2330"></span></p>
<p>さて、本題の OAuth のお話。<br />
Twitter で OAuth を利用するには、おおまかに以下の流れを踏みます。</p>
<ol>
<li><a href="http://twitter.com/oauth_clients" title="Twitter / アプリケーション">http://twitter.com/oauth_clients</a> で Twitter にアプリケーションを登録して、consumer_key, consumer_key_secret を取得。</li>
<li>consumer_key, consumer_key_secret から、request_token, request_token_secret を生成。</li>
<li>取得した request_token から authorize URLを生成。</li>
<li>twitter側で認証した後、callback_url に戻ってくるパラメータ oauth_verifier 若しくは PIN と、request_token, request_token_secret を利用して、access_token, access_token_secret を取得。</li>
<li>consumer_key, consumer_key_secret, access_token, access_token_secret を利用して、Twitter の各種APIを使用する。</li>
</ol>
<p>consumer_key, consumer_key_secret, access_token, access_token_secret 共に重要なキーです。<br />
これらが漏れると、どんなことが可能になるでしょうか？</p>
<p>consumer_key, consumer_key_secret の役割を考えてみましょう。<br />
これら2つのキーは Twitter アプリケーションの認証を行っていると考えていいでしょう。</p>
<p><a href="http://static.dogmap.jp/2010/02/Tweet.png" title="Tweet" rel="lightbox"><img src="http://static.dogmap.jp/2010/02/Tweet-160x67.png" alt="Tweet" title="Tweet" width="160" height="67" class="alignright size-thumbnail wp-image-2332" border="0" align="right" /></a>Twitter アプリケーション名が、どこに出てくるかというと例えば以下のような所です</p>
<ul>
<li>Tweet のアプリケーション名</li>
<li>認証画面のアプリケーション名</li>
</ul>
<p><a href="http://static.dogmap.jp/2010/02/TwitterOAuth.png" title="TwitterOAuth" rel="lightbox"><img src="http://static.dogmap.jp/2010/02/TwitterOAuth-160x74.png" alt="Twitter OAuth" title="TwitterOAuth" width="160" height="74" class="alignright size-thumbnail wp-image-2333" border="0" align="right" /></a>consumer_key, consumer_key_secret が漏れると、これを偽装できちゃいます。<br />
OAuth で認証する画面を見ると分かるんですけど Twitter アプリケーションの情報って名前とアプリケーションを登録したユーザ名しか出てないんですよね。<br />
ユーザはこれだけの情報で、認証を求めてきたアプリケーションに対して権利を委ねなければなりません。</p>
<p>例えば「TweetPost」という Twitter アプリケーションが有ったとします。<br />
このアプリケーションの consumer_key, consumer_key_secret が第三者に漏れてしまった場合、その第三者が consumer_key, consumer_key_secret を使用して「TweetPost」という名前の悪意あるアプリケーションを作成し、誰かにユーザー登録させることも可能です。いわゆる成りすましですね。<br />
「TweetPost」というアプリケーションが、地道に築き上げてきた信頼・ブランドが瓦解しちゃいますね。</p>
<p>実際はアプリケーションのタイプを「Browser」にした場合は Twitter での認証後、アプリケーションに登録してある Callback URL に遷移するので oauth_verifier を取得するのは難儀ですが (^^;;<br />
アプリケーションのタイプを「Client」にした場合は、request_token, request_token_secret, PIN から access_token, access_token_secret が生成できるので、成りすましは容易に可能になるでしょう。</p>
<p>Webアプリケーションだったら、consumer_key, consumer_key_secret を隠蔽するのは比較的容易ですが、クライアントアプリだと辛いモノがありますね。<br />
クライアントアプリ用に OAuth 以外の認証方法が用意されるのかも知れません。</p>
<p>そんなわけで、<a href="http://wordpress.org/extend/plugins/simple-tweet/" title="Simple Tweet">Simple Tweet</a> Ver.1.3.x では、Twitter アプリの登録は自分でやってもらうことにしました。<br />
私が登録した Twitter アプリ経由で OAuth を通してもらうには、consumer_key, consumer_key_secret をどこかに入れ込んでおかないといけないですからね。</p>
<p>最近、見かけた WordPress プラグインの中にソース内に consumer_key, consumer_key_secret を埋め込んでいるものがありました。<br />
そのプラグインは、現在のバージョンでは OAuth に対応していないようですが、将来の対応のために埋め込んであったのかも。<br />
どの WordPress プラグインとは特定しませんが、この辺を深く考えないでソースの中に consumer_key, consumer_key_secret を埋め込んでいるようでは、作者のセキュリティに対する意識が薄いのかもしれません。<br />
実害は無いとは思いますが、使用は控えたほうが良いかも知れません。</p>
]]></content:encoded>
			<wfw:commentRss>http://dogmap.jp/2010/02/16/twitter-oauth/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://dogmap.jp/2010/02/16/twitter-oauth/" />
	</item>
		<item>
		<title>Simple Tweet 1.3.0 リリース</title>
		<link>http://dogmap.jp/2010/02/11/simple-tweet-130/</link>
		<comments>http://dogmap.jp/2010/02/11/simple-tweet-130/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 07:13:46 +0000</pubDate>
		<dc:creator>をかもと</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Simple Tweet]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[WordPress Plugin]]></category>

		<guid isPermaLink="false">http://dogmap.jp/?p=2329</guid>
		<description><![CDATA[WordPress に新規投稿があったら、Twitter に通知するプラグイン Simple Tweet の Ver.1.3.0 を JSeries で先行リリースしました。
英語ドキュメントができてないので、公式プラグ [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress に新規投稿があったら、Twitter に通知するプラグイン <a href="http://wppluginsj.sourceforge.jp/simple-tweet/" title="WordPress Plugins/JSeries » Simple Tweet (Twitter ポスト)">Simple Tweet</a> の Ver.1.3.0 を JSeries で先行リリースしました。<br />
英語ドキュメントができてないので、公式プラグインディレクトリへの登録はまだです。<br />
気になる人は JSeries から、直接ダウンロードしてバージョンアップしてください。<br />
<a href="http://wppluginsj.sourceforge.jp/simple-tweet/" title="WordPress Plugins/JSeries » Simple Tweet (Twitter ポスト)">WordPress Plugins/JSeries » Simple Tweet (Twitter ポスト)</a><br />
<span id="more-2329"></span></p>
<p>今回のバージョンアップでは、幾つかの機能強化を行っています。<br />
更新された機能は、ざっと以下のとおり。</p>
<ul>
<li>Twitter OAuth 認証対応</li>
<li>短縮URLの生成法方を選択可能に</li>
</ul>
<p>特に Twitter OAuth 認証対応は、設定がややこしいので別途説明ページを JSeries に作成しました。<br />
そちらも併せてお読みください。<br />
<a href="http://wppluginsj.sourceforge.jp/simple-tweet/simple-tweet-oauth/" title="WordPress Plugins/JSeries &laquo; Simple Tweet OAuth 設定">Twitter OAuth 設定方法</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dogmap.jp/2010/02/11/simple-tweet-130/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://dogmap.jp/2010/02/11/simple-tweet-130/" />
	</item>
		<item>
		<title>Kougaburari</title>
		<link>http://dogmap.jp/2010/02/08/kougaburari/</link>
		<comments>http://dogmap.jp/2010/02/08/kougaburari/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 00:41:34 +0000</pubDate>
		<dc:creator>をかもと</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Slide show]]></category>
		<category><![CDATA[WordPress Plugin]]></category>

		<guid isPermaLink="false">http://dogmap.jp/?p=2327</guid>
		<description><![CDATA[WordPress 用ランダムポスト・スライドショープラグインを JSeries でリリースしました。
hiromasa作の画像付きアーカイブ表示プラグイン「wp-kougabu」のランダムポスト機能を使用して、スライド [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress 用ランダムポスト・スライドショープラグインを JSeries でリリースしました。<br />
<a href="http://another.maple4ever.net/archives/1124/" title="hiromasa.another :o) » Blog Archive » wp-kougabu 1.12 リリースとぶらりぶらり">hiromasa</a>作の画像付きアーカイブ表示プラグイン「<a href="http://wppluginsj.sourceforge.jp/wp-kougabu/" title="WordPress Plugins/JSeries » wp-kougabu （画像付きアーカイブ）">wp-kougabu</a>」のランダムポスト機能を使用して、スライドショーを表示するプラグインです。<br />
<strong>※ wp-kougabu ver.1.12 以降が有効化されている必要があります。</strong></p>
<p>ダウンロードと使用方法は <a href="http://wppluginsj.sourceforge.jp/kougaburari/" title="WordPress Plugins/JSeries » Kougaburari ( ランダムポスト・スライドショー )">WordPress Plugins/JSeries » Kougaburari ( ランダムポスト・スライドショー )</a> を参照してください。</p>
<p>そもそも、このプラグインに着手したキッカケは、みなみさんの「<a href="http://www.pi-kun.com/archives/1371" title="M's Life 2 » WP2.9 オムライス">WP2.9 オムライス</a>」というエントリでお願いされたから。</p>
<blockquote><p>いまほしいのは kogabu で抽出した画像を js でランダムに表示させるような魔法のプラグインです。そこに手書きキャプションとか追加できたらイイナ。<a href="http://dogmap.jp/">新潟のにーさん</a>とか<a href="http://another.maple4ever.net/">ひろまさ</a>とかが合体して作ってくれないかなあ。</p></blockquote>
<p>名指しで指名されたら作らんわけにはいきますまい。<br />
<span id="more-2327"></span></p>
<p>てなわけで、前から気になっていた jQuery プラグイン <a href="http://malsup.com/jquery/cycle/" title="JQuery Cycle Plugin">JQuery Cycle Plugin</a> を使用して、wp-kougabu が吐き出したランダムポストイメージをスライドショー表示するプラグインを作りました。<br />
開発当初は JSON でランダムポスト情報を取得して動的に組み立ててたんですが、ちょっとサーバ負荷がきつかったようなので JSON 方式は捨てました。<br />
開発中は <a href="http://another.maple4ever.net/" title="hiromasa.another :o)">hiromasa</a>, <a href="http://www.pi-kun.com/" title="M's Life 2">みなみ</a>, <a href="http://www.odysseygate.com/" title="Odysseygate.com | WordPressでつづる、おでのこの道わが旅。">おでこ</a>, <a href="http://fish1091.com/wordpress/" title="Binsan’s Cafe::: Binsan's Cafe">Binsan</a>, <a href="http://mmrt-jp.net/" title="MMRT Web Site ver.5.0">Masayan</a>, <a href="http://love-satchin.org/" title="LOVE!?">さっちん</a> ら、WPer が Twitter 上でテストに付き合ってくれました、多謝。</p>
<p>デモは、以下のサイトで見ることができます。</p>
<ul>
<li><a href="http://shot.dogmap.jp/gallery/" title="shot.dogmap.jp » Gallery">shot.dogmap.jp » Gallery</a></li>
<li><a href="http://another.maple4ever.net/" title="hiromasa.another :o)">hiromasa.another <img src="http://wppluginsj.sourceforge.jp/wp-includes/images/smilies/icon_surprised.gif" alt=":o" class="wp-smiley" title=":o" /> )</a> (サイドバーの「Random Post」)</li>
<li><a href="http://www.pi-kun.com/" title="M's Life 2">M&#39;s Life 2</a> (サイドバーの「Random Scroll」)</li>
<li><a href="http://www.odysseygate.com/" title="Odysseygate.com | WordPressでつづる、おでのこの道わが旅。">Odysseygate.com | WordPressでつづる、おでのこの道わが旅。</a> (サイドバーの「光画部らり」)</li>
<li><a href="http://fish1091.com/wordpress/" title="Binsan’s Cafe::: Binsan's Cafe">Binsan’s Cafe::: Binsan&#39;s Cafe</a> (サイドバーの「Random Post」)</li>
<li><a href="http://mmrt-jp.net/" title="MMRT Web Site ver.5.0">MMRT Web Site ver.5.0</a></li>
<li><a href="http://love-satchin.org/" title="LOVE!?">LOVE!?</a> (サイドバーの「Photo」)</li>
</ul>
<hr />
デモ : ( width=160 height=120 count=20 fx=fadeZoom timeout=4000 speed=1000 )<br />
<div id="slideshow-0" class="slideshow" style="width:160;height:120;"><div class="slideshow-box" style="display:none;width:160;height:120;"><a href="http://dogmap.jp/2008/07/10/xbmc-for-ubuntu/"><img src="http://static.dogmap.jp/images/gallery/b29063ebffa4adf22644b779ac3cfa2a.jpg" width="150" height="120" alt="xbmc02.png" title="XBMC for Ubuntu" /></a></div><div class="slideshow-box" style="display:none;width:160;height:120;"><a href="http://dogmap.jp/2007/05/08/%E9%95%B7%E5%B2%A1-%E6%82%A0%E4%B9%85%E5%B1%B1%E3%81%AE%E6%A1%9C-2007/"><img src="http://static.dogmap.jp/images/gallery/ebcdded1833a3a6db92daaa1232b7f0a.jpg" width="160" height="120" alt="sakura0416l.JPG" title="長岡 悠久山の桜 2007" /></a></div><div class="slideshow-box" style="display:none;width:160;height:120;"><a href="http://dogmap.jp/2008/12/30/%E5%BF%98%E5%B9%B4%E4%BC%9A-in-%E3%81%8B%E3%82%84%E3%81%B6%E3%81%8D%E3%81%AE%E9%87%8C/"><img src="http://static.dogmap.jp/images/gallery/01e80129e918390f12726032f0adb043.jpg" width="160" height="120" alt="cimg0960.jpg" title="忘年会 in 高柳 荻ノ島 かやぶきの里" /></a></div><div class="slideshow-box" style="display:none;width:160;height:120;"><a href="http://dogmap.jp/2009/02/14/%E9%95%B7%E5%B2%A1%E9%9B%AA%E3%81%97%E3%81%8B%E7%A5%AD%E3%82%8A-2009/"><img src="http://static.dogmap.jp/images/gallery/8d2bd0fc565c887c0138662ec933264f.jpg" width="160" height="120" alt="cimg1119.jpg" title="長岡雪しか祭り 2009" /></a></div><div class="slideshow-box" style="display:none;width:160;height:120;"><a href="http://dogmap.jp/2007/05/20/%E8%8B%BA/"><img src="http://static.dogmap.jp/images/gallery/c175097b1fc22af0bf1924ed24189862.jpg" width="160" height="120" alt="strawberry1.jpg" title="苺" /></a></div><div class="slideshow-box" style="display:none;width:160;height:120;"><a href="http://dogmap.jp/2009/04/18/%E9%95%B7%E5%B2%A1-%E6%82%A0%E4%B9%85%E5%B1%B1%E3%81%AE%E6%A1%9C-2009/"><img src="http://static.dogmap.jp/images/gallery/a9cc3c2c8098dcdec793c21a1cfd66a2.jpg" width="160" height="120" alt="200904123l.jpg" title="長岡 悠久山の桜 2009" /></a></div><div class="slideshow-box" style="display:none;width:160;height:120;"><a href="http://dogmap.jp/2008/11/24/%E3%81%86%E3%82%8F%E3%81%B9%E3%82%92%E9%A3%BE%E3%82%8B%E3%82%A2%E3%83%BC%E3%83%88-%E9%8F%9D%E7%B5%B5-%E8%8D%92%E4%BF%A3%E5%AE%8F%E8%AC%9B%E6%BC%94%E4%BC%9A/"><img src="http://static.dogmap.jp/images/gallery/35ea86b5ae5c7a3706d055b594a87363.jpg" width="84" height="120" alt="6b2be6e3.jpg" title="うわべを飾るアート 鏝絵 - 荒俣宏講演会" /></a></div><div class="slideshow-box" style="display:none;width:160;height:120;"><a href="http://dogmap.jp/2009/02/28/head-cleaner-3/"><img src="http://static.dogmap.jp/images/gallery/626f1478d42f2304df2873fcd1c42c7d.jpg" width="157" height="120" alt="firebug_2.png" title="Head Cleaner (仮) で、なぜ速くなるのか？" /></a></div><div class="slideshow-box" style="display:none;width:160;height:120;"><a href="http://dogmap.jp/2009/01/01/a-happy-new-year/"><img src="http://static.dogmap.jp/images/gallery/97a77b25d1eb29caaf4541e036e42f0c.jpg" width="160" height="120" alt="cimg0977.jpg" title="あけましておめでとうございます" /></a></div><div class="slideshow-box" style="display:none;width:160;height:120;"><a href="http://dogmap.jp/2009/04/26/35th-noge-street-performings-festival/"><img src="http://static.dogmap.jp/images/gallery/0e85b908b52ebc3abddef92f52936354.jpg" width="160" height="120" alt="img00049-20090425-1215.jpg" title="第35回 野毛大道芸" /></a></div><div class="slideshow-box" style="display:none;width:160;height:120;"><a href="http://dogmap.jp/2010/01/19/wordpress-customized-maintenance-mode/"><img src="http://static.dogmap.jp/images/gallery/047a1945de4ade8ce3e84866e398fa0e.jpg" width="160" height="57" alt="screenshot_3.png" title="WordPress のメンテナンスページをカスタマイズ" /></a></div><div class="slideshow-box" style="display:none;width:160;height:120;"><a href="http://dogmap.jp/2009/05/26/%E6%B0%B4%E3%81%8F%E3%82%8C%E9%96%8B%E7%99%BA%E8%A8%98-step5/"><img src="http://static.dogmap.jp/images/gallery/010e7e9ba56601967dc701f76d5f6c2f.jpg" width="160" height="120" alt="water08.jpg" title="水くれ開発記 Step.5" /></a></div><div class="slideshow-box" style="display:none;width:160;height:120;"><a href="http://dogmap.jp/2010/02/27/wordcamp-fukuoka-2010/"><img src="http://static.dogmap.jp/images/gallery/e1839a8fdd9cdef0063732da78df31ff.jpg" width="160" height="106" alt="wcfukuoka2010_4.jpg" title="WordCamp Fukuoka 2010 に行ってきました" /></a></div><div class="slideshow-box" style="display:none;width:160;height:120;"><a href="http://dogmap.jp/2009/04/19/blackberry-bold/"><img src="http://static.dogmap.jp/images/gallery/64b50f739767c539ac433781cd1804d5.jpg" width="160" height="120" alt="blackberry_bold.jpg" title="BlackBerry Bold" /></a></div><div class="slideshow-box" style="display:none;width:160;height:120;"><a href="http://dogmap.jp/2008/10/12/31th-ohsu-street-performings-festival/"><img src="http://static.dogmap.jp/images/gallery/072841027d75582ea6e3061a0d2d4f70.jpg" width="90" height="120" alt="cimg0449.jpg" title="第31回 大須大道町人祭" /></a></div><div class="slideshow-box" style="display:none;width:160;height:120;"><a href="http://dogmap.jp/2007/08/14/%E5%BF%AB%E6%B0%97%E7%A5%9D%E3%81%84/"><img src="http://static.dogmap.jp/images/gallery/3e86e437e41bad40f26ade6ab4cc52ae.jpg" width="160" height="120" alt="008.jpg" title="快気祝い" /></a></div><div class="slideshow-box" style="display:none;width:160;height:120;"><a href="http://dogmap.jp/2009/04/03/twitter-api-%E3%81%AE%E4%BB%95%E6%A7%98%E5%A4%89%E6%9B%B4/"><img src="http://static.dogmap.jp/images/gallery/584cb3829b86cf8014fa94989901635f.jpg" width="160" height="69" alt="iddz.png" title="Twitter API の仕様変更" /></a></div></div>
<div id="slideshow-caption-0" class="slideshow-caption"></div>
</p>
]]></content:encoded>
			<wfw:commentRss>http://dogmap.jp/2010/02/08/kougaburari/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://dogmap.jp/2010/02/08/kougaburari/" />
	</item>
		<item>
		<title>プラグインを諸々修正</title>
		<link>http://dogmap.jp/2010/01/22/plugins-update/</link>
		<comments>http://dogmap.jp/2010/01/22/plugins-update/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 08:22:22 +0000</pubDate>
		<dc:creator>をかもと</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[お知らせ]]></category>
		<category><![CDATA[WordPress Plugin]]></category>

		<guid isPermaLink="false">http://dogmap.jp/?p=2324</guid>
		<description><![CDATA[私がリリースしているいくつかのプラグインと言語ファイルを修正しました。
修正したのは以下の4つ。

Short link maker Ver.0.1.1
WordPress.com Stats と競合して有効化できないこ [...]]]></description>
			<content:encoded><![CDATA[<p>私がリリースしているいくつかのプラグインと言語ファイルを修正しました。<br />
修正したのは以下の4つ。</p>
<ul>
<li><a href="http://wordpress.org/extend/plugins/short-link-maker/" title="Short link maker">Short link maker</a> Ver.0.1.1<br />
WordPress.com Stats と競合して有効化できないことがある不具合を修正。</li>
<li><a href="http://wordpress.org/extend/plugins/simple-tweet/" title="Simple Tweet">Simple Tweet</a> Ver.1.2.1<br />
予約投稿時に Tweet されなかった不具合を修正</li>
<li><a href="http://wordpress.org/extend/plugins/google-maps-anywhere/" title="Google Maps Anywhere">Google Maps Anywhere</a> Ver.1.1.7<br />
Map のリンク先が必ず衛星写真になってしまっている不具合を修正<br />
ストリートビューの表示が、ずれてしまう不具合を修正</li>
<li><a href="http://wppluginsj.sourceforge.jp/i18n-ja_jp/p2-theme/" title="P2 日本語リソース">P2 日本語リソース</a><br />
最新バージョン 1.1.3 に対応。作者の Noel にも送付済みなので近々反映されると思います。</li>
</ul>
<p><span id="more-2324"></span></p>
<p>というわけで、ストリートビューの表示テスト。<br />
ウォーリーというより、楳図かずお？<br />
<a href="http://maps.google.com/maps?f=q&amp;hl=ja&amp;geocode=&amp;q=51.463958,-0.215476&amp;ie=UTF8&amp;ll=51.463958,-0.215476&amp;t=h&amp;z=15&amp;layer=c&amp;cbll=51.463958,-0.215476&amp;cbp=1,109.52,,1,15.97&amp;maptype=STREETVIEW" title="Wandsworth, Greater London SW15 1, イギリス">Wandsworth, Greater London SW15 1, イギリス</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dogmap.jp/2010/01/22/plugins-update/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://dogmap.jp/2010/01/22/plugins-update/" />
	</item>
		<item>
		<title>WordPress のメンテナンスページをカスタマイズ</title>
		<link>http://dogmap.jp/2010/01/19/wordpress-customized-maintenance-mode/</link>
		<comments>http://dogmap.jp/2010/01/19/wordpress-customized-maintenance-mode/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 18:54:05 +0000</pubDate>
		<dc:creator>をかもと</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Maintenance mode]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://dogmap.jp/?p=2319</guid>
		<description><![CDATA[デフォルト状態の WordPress では、管理パネルから本体のアップグレードやプラグインの一括修正を行っているときにメンテナンスモードに切り替わり、左図のような「Briefly unavailable for sche [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://static.dogmap.jp/2010/01/screenshot_3.png" title="Maintenance mode" rel="lightbox"><img src="http://static.dogmap.jp/2010/01/screenshot_3-160x57.png" alt="Maintenance mode" title="Maintenance mode" width="160" height="57" class="alignleft size-thumbnail wp-image-2320" border="0" align="left" /></a><a href="http://static.dogmap.jp/2010/01/screenshot_2.png" title="Maintenance mode" rel="lightbox"><img src="http://static.dogmap.jp/2010/01/screenshot_2-160x83.png" alt="Maintenance mode" title="Maintenance mode" width="160" height="83" class="alignright size-thumbnail wp-image-2321" border="0" align="right" /></a>デフォルト状態の WordPress では、管理パネルから本体のアップグレードやプラグインの一括修正を行っているときにメンテナンスモードに切り替わり、左図のような<strong>「Briefly unavailable for scheduled maintenance. Check back in a minute.」</strong>という簡素な画面が表示されます。<br />
# 2.7.x 辺りから実装された機能<br />
これでは、あまりにもカッコ悪いので、右図のようにちょっとカッコいいメンテナンス画面を表示してあげるための Tips です。<br />
有名サイトでも、この画面をカスタマイズしてない所はたまに見かけるので、あまり知られていないかなと思ってエントリ (^^;;;<br />
<span id="more-2319"></span></p>
<p>おや、どこかで見かけた書き出し。<br />
そう、やり方は<a href="http://dogmap.jp/2009/07/14/wordpress-customize-db-error/" title="WordPress のデータベースエラーページをカスタマイズ : dogmap.jp">WordPress のデータベースエラーページをカスタマイズ</a>の方法と、ほとんど同じです。<br />
wp-content 以下に maintenance.php と言う名前でメンテナンスモード時に表示させたい PHP ファイルを置いておくだけです。<br />
ちなみに私の所では、こんな感じの内容で maintenance.php を作成しておいてあります。<br />
[php]<?php<br />
header( 'HTTP/1.1 503 Service Unavailable' );<br />
header( 'Expires: Wed, 11 Jan 1984 05:00:00 GMT' );<br />
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );<br />
header( 'Cache-Control: no-cache, must-revalidate, max-age=0' );<br />
header( 'Pragma: no-cache' );<br />
header( 'Content-Type: text/html; charset=utf-8' );<br />
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><br />
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ja"><br />
<head><br />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></p>
<link rel="stylesheet" href="/error/style.css" type="text/css" />
</head><br />
<body id="error-page"></p>
<h1>503 Service Unavailable</h1>
<p>
        ただいまサーバのメンテナンス中です。<br />
        数分後に再度リロードしてみてください。
    </p>
<p>ご不便おかけしますが、よろしくお願いいたします。</p>
<p style="text-align: right;"><a href="http://dogmap.jp/">http://dogmap.jp/</a></p>
<p></body><br />
</html>[/php]</p>
<p>注意する所は WordPress ロード後、早い段階で表示されるので WordPress のテンプレートタグはほとんど使えない点です。</p>
<hr />
<a href="http://static.dogmap.jp/2010/01/screenshot_1.png" title="プラグインのアップグレード" rel="lightbox"><img src="http://static.dogmap.jp/2010/01/screenshot_1-160x110.png" alt="プラグインのアップグレード" title="プラグインのアップグレード" width="160" height="110" class="alignleft size-thumbnail wp-image-2322" border="0" align="left" /></a>ちなみにメンテナンスモードが有効になるタイミングは、本体をアップグレードしたり、プラグインを一括アップグレードしたりするときに「メンテナンスモードを有効にします」と表示された後です。<br />
その後、「メンテナンスモードを無効にしています」と表示されるまで、サイトにアクセスするとメンテナンスモード用の画面が表示されます。</p>
]]></content:encoded>
			<wfw:commentRss>http://dogmap.jp/2010/01/19/wordpress-customized-maintenance-mode/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://dogmap.jp/2010/01/19/wordpress-customized-maintenance-mode/" />
	</item>
		<item>
		<title>Custom more text</title>
		<link>http://dogmap.jp/2010/01/06/custom-more-text/</link>
		<comments>http://dogmap.jp/2010/01/06/custom-more-text/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 23:05:22 +0000</pubDate>
		<dc:creator>をかもと</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[WordPress Plugin]]></category>

		<guid isPermaLink="false">http://dogmap.jp/?p=2317</guid>
		<description><![CDATA[以前、唯奈さんに Twitter でリクエストされてちょちょっと書いた WordPress 用プラグイン「Custom more text」。
投稿のカスタムフィールド「custom-more-text」にテキストが設定 [...]]]></description>
			<content:encoded><![CDATA[<p>以前、<a href="http://twitter.com/yuina_s" title="唯奈 (yuina_s) on Twitter">唯奈さん</a>に Twitter でリクエストされてちょちょっと書いた WordPress 用プラグイン「Custom more text」。<br />
投稿のカスタムフィールド「custom-more-text」にテキストが設定されていた場合、「続きを読む」のテキストを変更するプラグインです。</p>
<p><a href="http://dl.dropbox.com/u/110305/custom-more-text.php" title="Custom more text">http://dl.dropbox.com/u/110305/custom-more-text.php</a><br />
<span id="more-2317"></span></p>
<p>仕組みは簡単で、<a href="http://dogmap.jp/2009/11/10/custom-more-link/" title="more-link の #more-xxxx を削除する : dogmap.jp">more-link の #more-xxxx を削除</a>した時に使用した &quot;<strong>the_content_more_link</strong>&quot; フィルタをフックして、カスタムフィールド「custom-more-text」に設定されたテキストと置き換えてるだけです。<br />
このプラグインを元にすれば、「続きを読む」のテキストをエントリの件名に置換したりも簡単にできると思うよ。</p>
<p>[php]<?php<br />
/*<br />
Plugin Name: Custom more text<br />
Plugin URI:<br />
Description: 「続きを読む」のテキストをカスタムフィールド「custom-more-text」に設定されたテキストに置き換える。(WP2.8以降でないと動作しません)<br />
Author: wokamoto<br />
Version: 0.0.2<br />
Author URI: http://dogmap.jp/<br />
*/<br />
function custom_more_text( $output ) {<br />
	$custom_more_text = get_post_meta(get_the_ID(), 'custom-more-text', true);<br />
	if ( !empty($custom_more_text) )<br />
		$output = preg_replace('/(<a [^>]*>)[^<]*(<\/a>)/i&#39;, &#39;$1&#8242;.$custom_more_text.&#39;$2&#8242;, $output );<br />
	return $output;<br />
}</p>
<p>add_filter( &#39;the_content_more_link&#39;, &#39;custom_more_text&#39; );<br />
?>[/php]</p>
]]></content:encoded>
			<wfw:commentRss>http://dogmap.jp/2010/01/06/custom-more-text/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://dogmap.jp/2010/01/06/custom-more-text/" />
	</item>
		<item>
		<title>Table optimizer</title>
		<link>http://dogmap.jp/2010/01/01/table-optimizer/</link>
		<comments>http://dogmap.jp/2010/01/01/table-optimizer/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 16:07:40 +0000</pubDate>
		<dc:creator>をかもと</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[DB]]></category>
		<category><![CDATA[WordPress Plugin]]></category>

		<guid isPermaLink="false">http://dogmap.jp/?p=2315</guid>
		<description><![CDATA[WordBench 東京が開催した黙々と何かを作る勉強会もくもく部。
当日は大掃除したりなんだりで、リアルタイムには参加できなかったのですが、あまりに楽しそうだったので、夜中にこっそりビールを呑みながら、一人もくもく部を [...]]]></description>
			<content:encoded><![CDATA[<p>WordBench 東京が開催した黙々と何かを作る勉強会<a href="http://tokyo.wordbench.org/2009/12/19/study-20091226/" title="WordBench 第1回もくもく部 in 東京 at WordBench 東京">もくもく部</a>。<br />
当日は大掃除したりなんだりで、リアルタイムには参加できなかったのですが、あまりに楽しそうだったので、夜中にこっそりビールを呑みながら、一人もくもく部をやってました。<br />
で、1時間あまりで作ったプラグインがこれ。</p>
<p><a href="http://dl.dropbox.com/u/110305/optimizer.php" title="table optimizer">http://dl.dropbox.com/u/110305/optimizer.php</a></p>
<p>wp-cron という WordPress で定期実行してくれる仕組みを使って定期的に全テーブルを optimize してくれるプラグインです。<br />
地味に便利だと思いますよ。<br />
<span id="more-2315"></span></p>
<p>一応、簡単な説明。<br />
やってることは単純で &quot;SHOW TABLES&quot; を発行して、全テーブル名を取得し、その中から $wpdb->prefix でプリフィックスが WordPress で使用しているテーブルと一致するモノを &quot;OPTIMIZE TABLE&quot; してるだけです。<br />
定期的に OPTIMIZE しなくても ANALYZE だけで充分だよ。という人は OPTIMIZE TABLE を ANALYZE TABLE に書き換えてやってください。</p>
<p>MySQL や一般的な RDBMS では、定期的に ANALYZE してやって、テーブルのキーの分布を分析・格納してやることで、DBアクセス時のパフォーマンスアップが見込めます。<br />
動的生成の WordPress では、定期的に ANALYZE TABLE もしくは OPTIMIZE TABLE してやると幸せになれるでしょう。</p>
<p>[php]define(&#39;OPTIMIZER_INTERVAL&#39;, 24 * 60);<br />
define(&#39;OPTIMIZER_SCHEDULE_HANDLER&#39;, &#39;optimize_table&#39;);</p>
<p>class OptimizeTable {</p>
<p>	function optimize_table(){<br />
		global $wpdb, $table_prefix;</p>
<p>		$tables = $wpdb->get_col(&#39;SHOW TABLES&#39;);<br />
		$pattern = &#39;/^&#39;. preg_quote($wpdb->prefix) . &#39;/i&#39;;<br />
		foreach ( $tables as $table ) {<br />
			if ( preg_match( $pattern, $table ) ) {<br />
				$wpdb->query(&quot;OPTIMIZE TABLE $table&quot;);<br />
			}<br />
		}</p>
<p>		$time_interval = OPTIMIZER_INTERVAL;<br />
		$this->schedule_single_event($time_interval);</p>
<p>	}</p>
<p>	// get wp-cron schedule<br />
	function _get_schedule($schedule_procname = OPTIMIZER_SCHEDULE_HANDLER) {<br />
		$schedule = array(<br />
			&#39;procname&#39; => &quot; ,<br />
			&#39;enabled&#39; => FALSE ,<br />
			&#39;time&#39; => &quot; ,<br />
		);</p>
<p>		$crons = _get_cron_array();<br />
		if ( !empty($crons) ) {<br />
			foreach ( $crons as $time => $tasks ) {<br />
				foreach ( $tasks as $procname => $task ) {<br />
					if ($procname === $schedule_procname) {<br />
						$schedule['procname'] = $procname;<br />
						$schedule['time'] = $time;<br />
						$schedule['enabled'] = true;<br />
						break;<br />
					}<br />
				}<br />
				if ($schedule['enabled']) break;<br />
			}<br />
			unset($procname); unset($task);<br />
			unset($time); unset ($tasks);<br />
		}<br />
		unset($crons);</p>
<p>		return ($schedule);<br />
	}</p>
<p>	function schedule_single_event($time_interval = OPTIMIZER_INTERVAL) {<br />
		return (wp_schedule_single_event(time() + $time_interval * 60, OPTIMIZER_SCHEDULE_HANDLER));<br />
	}</p>
<p>	function schedule_enabled($schedule_procname = OPTIMIZER_SCHEDULE_HANDLER) {<br />
		$schedule = $this->_get_schedule($schedule_procname);<br />
		return ($schedule['enabled']);<br />
	}<br />
}</p>
<p>$optimizer = new OptimizeTable();<br />
if ( !$optimizer->schedule_enabled() ) $optimizer->schedule_single_event(0);<br />
add_action(OPTIMIZER_SCHEDULE_HANDLER, array(&#038;$optimizer, &#39;optimize_table&#39;));<br />
unset($optimizer);[/php]</p>
]]></content:encoded>
			<wfw:commentRss>http://dogmap.jp/2010/01/01/table-optimizer/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://dogmap.jp/2010/01/01/table-optimizer/" />
	</item>
		<item>
		<title>more-link の #more-xxxx を削除する</title>
		<link>http://dogmap.jp/2009/11/10/custom-more-link/</link>
		<comments>http://dogmap.jp/2009/11/10/custom-more-link/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 18:08:55 +0000</pubDate>
		<dc:creator>をかもと</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[customize]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://dogmap.jp/?p=2311</guid>
		<description><![CDATA[WordPress の more-link には URL の後ろに #more-xxxx が含まれるため、以前は wp-includes/post-template.php を直接修正して #more-xxxx を付加し [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress の more-link には URL の後ろに #more-xxxx が含まれるため、以前は wp-includes/post-template.php を直接修正して #more-xxxx を付加しないようにしていました。<br />
WordPress 2.8.x からは &quot;<strong>the_content_more_link</strong>&quot; フィルタが追加されたので、more-link の #more-xxxx を削除するのは簡単になりました。<br />
以下のようなコードをテーマの functions.php に追加するだけで実現できます。<br />
[php]<?php<br />
// #more-$id を削除する。<br />
function custom_content_more_link( $output ) {<br />
	$output = preg_replace('/#more-[\d]+/i', '', $output );<br />
	return $output;<br />
}<br />
add_filter( 'the_content_more_link', 'custom_content_more_link' );<br />
?>[/php]</p>
<p>コアソースを書き換えちゃうと、アップデートが面倒になるので、できるだけフィルタフックやプラグインを使用してカスタマイズするように心がけましょう。<br />
大抵のことは、コアソースを弄らずともできます。</p>
<p><strong>追記:</strong><br />
すでに <a href="http://wpdocs.sourceforge.jp/" title="Main Page - WordPress Codex 日本語版">WordPress Codex</a> にも乗っているテクニックだそうです。<br />
# <a href="http://twitter.com/ounziw" title="水野史土 (ounziw) on Twitter">@ounziw</a> 情報ありがとうございます。<br />
<a href="http://wpdocs.sourceforge.jp/%E3%80%8C%E7%B6%9A%E3%81%8D%E3%82%92%E8%AA%AD%E3%82%80%E3%80%8D%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA" title="「続きを読む」のカスタマイズ - WordPress Codex 日本語版">「続きを読む」のカスタマイズ &#8211; WordPress Codex 日本語版</a></p>
]]></content:encoded>
			<wfw:commentRss>http://dogmap.jp/2009/11/10/custom-more-link/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://dogmap.jp/2009/11/10/custom-more-link/" />
	</item>
		<item>
		<title>Ubuntu で ext3 から ext4 へ</title>
		<link>http://dogmap.jp/2009/11/04/converting-ext3-to-ext4/</link>
		<comments>http://dogmap.jp/2009/11/04/converting-ext3-to-ext4/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 20:40:51 +0000</pubDate>
		<dc:creator>をかもと</dc:creator>
				<category><![CDATA[PC]]></category>
		<category><![CDATA[ext4]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[ファイルシステム]]></category>

		<guid isPermaLink="false">http://dogmap.jp/?p=2310</guid>
		<description><![CDATA[先日、ついうっかり自宅PCを Ubuntu 9.10 にアップデートしてしまいました。
で、ついでに Ubuntu 9.10 の標準ファイルシステムである ext4 にアップデートしたのでメモ。
参考にした URL は以 [...]]]></description>
			<content:encoded><![CDATA[<p>先日、ついうっかり自宅PCを <a href="http://twitter.com/wokamoto/statuses/5261038145" title="Twitter / wokamoto: Ubuntu アップデート中。ウィスキーを呑みながら ...">Ubuntu 9.10 にアップデート</a>してしまいました。<br />
で、ついでに Ubuntu 9.10 の標準ファイルシステムである ext4 にアップデートしたのでメモ。<br />
参考にした URL は以下のとおり。</p>
<ul>
<li><a href="http://ext4.wiki.kernel.org/index.php/Ext4_Howto#Converting_an_ext3_filesystem_to_ext4" title="Ext4 Howto - Ext4">Ext4 Howto &#8211; Ext4</a></li>
<li><a href="http://green.ap.teacup.com/nakaneko/120.html" title="Ubuntuでext3からext4への変換方法 | ぷじょ猫丸のわいわいノート">Ubuntuでext3からext4への変換方法 | ぷじょ猫丸のわいわいノート</a></li>
</ul>
<p><span id="more-2310"></span></p>
<p>手順は、簡単。</p>
<ol>
<li><code>$ df -T</code> でファイル・システムを確認</li>
<li><code>$ sudo tune2fs -O extents,uninit_bg,dir_index /dev/DEV</code> で変換指定</li>
<li><code>$ sudo e2fsck -fpDC0 /dev/DEV</code> で整合性チェック</li>
<li>ext4 に変換したデバイスについて /etc/fstab を修正するのを忘れずに</li>
</ol>
<p>後は、再起動すればおっけ。</p>
]]></content:encoded>
			<wfw:commentRss>http://dogmap.jp/2009/11/04/converting-ext3-to-ext4/feed/</wfw:commentRss>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://dogmap.jp/2009/11/04/converting-ext3-to-ext4/" />
	</item>
	</channel>
</rss>
