<?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:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>e2esound.com blog &#187; WordPress</title>
	<atom:link href="http://blog.e2esound.com/category/open-source/wordpress/feed?/category/open-source/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.e2esound.com</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Mon, 05 Jul 2010 10:30:48 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.e2esound.com/category/open-source/wordpress/feed?/category/open-source/wordpress/feed" />
		<item>
		<title>WordPressのコメント欄を超拡張：IntenseDebate</title>
		<link>http://blog.e2esound.com/20100606/entry-id=851</link>
		<comments>http://blog.e2esound.com/20100606/entry-id=851#comments</comments>
		<pubDate>Sun, 06 Jun 2010 13:55:02 +0000</pubDate>
		<dc:creator>yterajima</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[IntenseDebate.WordPress]]></category>
		<category><![CDATA[mixi]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[プラグイン]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=851</guid>
		<description><![CDATA[更新が滞りすぎている今日この頃、皆さま如何お過ごしでしょうか？さて、既に先週のことになってしまいましたが、WordCamp Yokohamaに行って参りました。とても貴重な時間が過ごせた次第ですし、いろんな人に会えました [...]]]></description>
			<content:encoded><![CDATA[<p>更新が滞りすぎている今日この頃、皆さま如何お過ごしでしょうか？さて、既に先週のことになってしまいましたが、<a href="http://yokohama2010.wordcamp.jp/" target="_blank">WordCamp Yokohama</a>に行って参りました。とても貴重な時間が過ごせた次第ですし、いろんな人に会えました。</p>
<p>さて、いろいろ書きたいのは山々なんですが・・・時間がなくてだな。。。</p>
<p>書きたいことをまるっとさくっと書きます。WordCampの中でも紹介されていたコメント欄拡張プラグイン「<a href="http://intensedebate.com/home" target="_blank">IntenseDebate」</a>の威力が半端ないです。何故知らなかったのか!!!!（眼にしたような記憶があるけど)</p>
<p>その威力は、私のコメント欄を見ていただければ分かるかと思います。素晴らしいほどの連携。</p>
<p><span id="more-851"></span></p>
<p>TwitterやFacebookとの連携、IntenseDebate自身のプラグインによる機能拡張と、もうこれは！使うしか！ない！！！！</p>
<p>という、威力です。（見込み。）</p>
<p>インストール方法に関しては、IntenseDebateサイトでアカウントを作成、プラグインファイルのアップロード、IntenseDebateでの設定だけです。</p>
<p>WordPressのプラグインでコメント欄、というとテンプレートを書き直すものだと思っていましたが、テンプレート自身は何1ついじっていません。この点も驚きつつ、最終的に出来上がったものがまが（驚）</p>
<p>日本語にも対応していますが、どうやらIntenseDebateの設定画面は英語onlyらしいですが、どうにかなるレベルです。つまずくとすれば、FacebookのAPI設定に関して、Facebook上でアプリケーション登録→API Keyとか入力という作業が発生します。（大きな声では言えないが、日本国内のサイトなら設定しなくてイイと思う）</p>
<p>（これ、mixiにも対応したら、日本国内では恐ろしいことになるんだろうな…しないと思うけど（ﾎﾞｿｯ）</p>
<p>PS.お願い</p>
<p>効果のほどを知りたいので、お暇な方は使ってみて貰えると嬉しいです。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.e2esound.com/20100606/entry-id=851/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.e2esound.com/20100606/entry-id=851" />
	</item>
		<item>
		<title>wp.vicunaという衝撃。：WordPressテーマ</title>
		<link>http://blog.e2esound.com/20100426/entry-id=839</link>
		<comments>http://blog.e2esound.com/20100426/entry-id=839#comments</comments>
		<pubDate>Mon, 26 Apr 2010 07:00:00 +0000</pubDate>
		<dc:creator>yterajima</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[wp.vicuna]]></category>
		<category><![CDATA[テーマファイル]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=839</guid>
		<description><![CDATA[WordPressには、有償無償を問わず山のようなテーマファイルがあります。
つい先日、WordPressのテーマファイルのカスタマイズ案件としてwp.vicunaを使用しました。事前認識としては「使いやすいんだろうなぁ [...]]]></description>
			<content:encoded><![CDATA[<p>WordPressには、有償無償を問わず山のようなテーマファイルがあります。</p>
<p>つい先日、WordPressのテーマファイルのカスタマイズ案件として<a href="http://wp.vicuna.jp/" target="_blank">wp.vicuna</a>を使用しました。事前認識としては「使いやすいんだろうなぁ～」程度のゆるふわな評価でしたが、凄かったのです。</p>
<p>使用したwp.vicunaは<a href="http://wp.vicuna.jp/download/apply-vicuna/" target="_blank">ver.2.03。</a>ライセンスはWordPressの場合MITライセンスとのことです。スキンとして、5種類が用意されています。管理画面から横幅についても変更可能という恐ろしさ。</p>
<ul>
<li><a href="http://vicuna.jp/storage/skin_v22/style-vega/preview/individual.html" title="Style-vega">Style-vega</a></li>
<li><a href="http://vicuna.jp/storage/skin_v22/style-mono/preview/individual.html" title="Style-mono">Style-mono</a></li>
<li><a href="http://vicuna.jp/storage/skin_v22/style-galaxy/preview/individual.html" title="Style-galaxy">Style-galaxy</a></li>
<li><a href="http://vicuna.jp/storage/skin_v22/style-flat/preview/individual.html" title="Style-flat">Style-flat</a></li>
<li><a href="http://vicuna.jp/storage/skin_v22/style-future/preview/individual.html" title="Style-future">Style-future</a></li>
</ul>
<p><span id="more-839"></span><br />
さらに！カラムレイアウトを管理画面から変更することが可能です。管理画面のサイドバー下部「Vicuna」より、各種プロパティの設定が可能です。2カラム3カラムはもちろん、それぞれの左右カラムの入れ替えや変則的な構成までサポート。カラムレイアウトに関しては<a href="http://wp.vicuna.jp/customize/change-layout/#extended" target="_blank">こちら</a>に詳細が紹介されています。このリンク先のページでは、「bodyタグのクラス名を変更することでカラムレイアウトを変更する」と書かれていますが、どうやら古い情報のようです。</p>
<p>現在のバージョンでは、管理画面からそれぞれのページに対して、それぞれのページのカラムレイアウトを変更することが可能です。</p>
<p><img src="http://farm5.static.flickr.com/4025/4550076315_f0724c6d0f_o.gif" alt="wp.vicuna-layout.gif" width="273" height="338" /></p>
<p>body.class=”Name”それぞれに対してカラムレイアウトを作成し適用させています。サーバー環境に不満がある方は、直接書くファイルのbodyタグのclass名を変更した方が高速に動作すると思われます。何故かというと、管理画面からカラムレイアウトを設定すると、データベースのうちwp-optionsテーブルに値を格納し、表示の度に呼び出すからです。</p>
<p>カスタマイズ性に関しても申し分ないですが、初心者の方にとっては少々難があるかもしれません。CSSファイルを分割して記述しているため、どこに何が書いてあるのか分からない！と言う事態が考えられます。（firebug使えばいいと思うよ）</p>
<p>サイドバーについては、ウィジェットにも対応しているので、普通に表示したいものについては問題ないと思います。どのテーマファイルを選べばいいのか迷った際には、wp.vicunaはオススメです！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.e2esound.com/20100426/entry-id=839/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.e2esound.com/20100426/entry-id=839" />
	</item>
		<item>
		<title>WordCamp Yokohama 2010</title>
		<link>http://blog.e2esound.com/20100425/entry-id=837</link>
		<comments>http://blog.e2esound.com/20100425/entry-id=837#comments</comments>
		<pubDate>Sun, 25 Apr 2010 09:50:00 +0000</pubDate>
		<dc:creator>yterajima</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordCamp Yokohama]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/20100425/entry-id=837</guid>
		<description><![CDATA[WordPressのイベント、WordCampが5/29(土)に横浜にて開催されるとのこと！
早速参加登録してみました。できれば懇親会にも参加したいところなのですが、ちょっとスケジュールの調整が必要そう。誰か一緒に行きま [...]]]></description>
			<content:encoded><![CDATA[<p>WordPressのイベント、WordCampが5/29(土)に横浜にて開催されるとのこと！</p>
<p>早速参加登録してみました。できれば懇親会にも参加したいところなのですが、ちょっとスケジュールの調整が必要そう。誰か一緒に行きませんか？</p>
<p><a href="http://yokohama2010.wordcamp.jp/" target="_blank" title="WordCamp Yokohama2010"><img src="http://yokohama2010.wordcamp.jp/wp-content/themes/yokohama2010/images/468_60_banner.jpg" alt="WordCamp Yokohama 2010" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.e2esound.com/20100425/entry-id=837/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.e2esound.com/20100425/entry-id=837" />
	</item>
		<item>
		<title>WordPressに外部RSSを取得し表示させる：XML_RSS編</title>
		<link>http://blog.e2esound.com/20100419/entry-id=836</link>
		<comments>http://blog.e2esound.com/20100419/entry-id=836#comments</comments>
		<pubDate>Mon, 19 Apr 2010 13:03:58 +0000</pubDate>
		<dc:creator>yterajima</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=836</guid>
		<description><![CDATA[かなり前に、WordPressに外部サイトのRSSを取得し表示させようと、こんな記事を書いていました。
e2esound.com:WordPressで外部RSSを取得して表示させる
書いたのは2008年ということで、これ [...]]]></description>
			<content:encoded><![CDATA[<p>かなり前に、WordPressに外部サイトのRSSを取得し表示させようと、こんな記事を書いていました。</p>
<p>e2esound.com:<a href="http://www.e2esound.com/20080708/entry-id=87" target="_blank">WordPressで外部RSSを取得して表示させる</a></p>
<p>書いたのは2008年ということで、これはまだWordPressをいじり始めて3ヶ月くらいのヘッポコもヘッポコな頃のものでございます。その後、PHPも勉強していることですし、今回は別の方法として、PEARライブラリを使用した方法を紹介します。</p>
<p>PEARライブラリのうち、<a href="http://pear.php.net/manual/ja/package.xml.xml-rss.php" target="_blank">XML_RSS</a>を使用します。lolipopではデフォルトでインストールされていますが、他のサーバーの方はPEARライブラリのインストールと使用方法を確認して下さい。</p>
<p>サクッと作ると<a href="http://www.e2esound.com/sample/php/xml_rss02.php" target="_blank">このように</a>なります。流れているRSSのタイトル＋リンクを表示しています。</p>
<p><span id="more-836"></span></p>
<p>[php]</p>
<p>&lt;?php<br />
//文字コード指定<br />
//header(&#8220;Content-Type: text/html; charset=UTF-8&#8243;);</p>
<p>//対象のRSS<br />
$url = &#8220;http://feeds.feedburner.jp/e2esound/Izak&#8221;;<br />
require_once(&#8216;XML/RSS.php&#8217;);</p>
<p>//インスタンス化<br />
$rss = new XML_RSS($url);<br />
$rss-&gt;parse();</p>
<p>echo &#8220;&lt;h1&gt;外部サイトのRSSを取得し表示する&lt;/h1&gt;&#8221;;</p>
<p>$items = $rss-&gt;getItems();</p>
<p>echo &#8220;&lt;ul&gt;&#8221;;<br />
//$itemsの配列が空ではない場合<br />
if(!empty($items)){<br />
&nbsp;&nbsp;&nbsp;&nbsp;foreach($items as $item){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &#8220;&lt;li&gt;&lt;a href=\&#8221;".$item['link'].&#8221;\&#8221;&gt;&#8221;.$item['title'].<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8221;&lt;/a&gt;&lt;/li&gt;&#8221;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}else{<br />
//$itemsの配列が空の場合<br />
echo &#8220;&lt;li&gt;No Contents&lt;/li&gt;&#8221;;<br />
}</p>
<p>echo &#8220;&lt;/ul&gt;&#8221;;</p>
<p>//End of File.<br />
[/php]</p>
<p>あれ？以前のものよりも分かりやすいような。</p>
<ol>
<li>PEARをrequire_once（）</li>
<li>インスタンス化</li>
<li>$rss-&gt;parse()</li>
<li>$rss-&gt;getItems()で結果を取得</li>
<li>表示させる</li>
</ol>
<p>尚、表示する内容を変更する場合には、$itemsの中身をvar_dump()し表示項目を追加してあげれば問題ありません。例えばdescriptionなら$item[‘description’]など。</p>
<p>以上のコードも、使用頻度が高いならWordPressのfunctions.phpに書いて関数かした方がイイかも。</p>
<p>[追記]<br />
タイトルにWordPressと書きましたが、普通にPHPで動きます。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.e2esound.com/20100419/entry-id=836/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.e2esound.com/20100419/entry-id=836" />
	</item>
		<item>
		<title>githubの活用とWordPress辞書の作り直し</title>
		<link>http://blog.e2esound.com/20100410/entry-id=832</link>
		<comments>http://blog.e2esound.com/20100410/entry-id=832#comments</comments>
		<pubDate>Sat, 10 Apr 2010 10:50:50 +0000</pubDate>
		<dc:creator>yterajima</dc:creator>
				<category><![CDATA[Program]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[dict]]></category>
		<category><![CDATA[dictionary]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=832</guid>
		<description><![CDATA[アカウントを作成したまま放置していたgithubの活用を開始しました！
URL:http://github.com/e2esoundcom
今のところ、このblogでも紹介しているCodeIgniter等々のファイルを上 [...]]]></description>
			<content:encoded><![CDATA[<p>アカウントを作成したまま放置していたgithubの活用を開始しました！</p>
<p>URL:<a href="http://github.com/e2esoundcom">http://github.com/e2esoundcom</a></p>
<p>今のところ、このblogでも紹介しているCodeIgniter等々のファイルを上げておきました。以前紹介したMY_helperについても内容を更新しています。</p>
<p>その他には、CodeIgniterやWordPressのVim用辞書ファイルもあります。</p>
<p>WordPressの辞書ファイルについては、現在作り直しを行っています。WordPress 3.0へのバージョンアップや内容の充実を目指しています。例えば、これまでテンプレートタグのみを辞書に登録していましたが、WordPress専用の関数やそれぞれの引数についても入れ込む予定です。</p>
<p>・・・誰か手伝ってくれる人、いないだろうか。ふぅ。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.e2esound.com/20100410/entry-id=832/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.e2esound.com/20100410/entry-id=832" />
	</item>
		<item>
		<title>WordPressのページ機能を使い倒す為の3つのコツ</title>
		<link>http://blog.e2esound.com/20100330/entry-id=822</link>
		<comments>http://blog.e2esound.com/20100330/entry-id=822#comments</comments>
		<pubDate>Tue, 30 Mar 2010 11:17:49 +0000</pubDate>
		<dc:creator>yterajima</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[page]]></category>
		<category><![CDATA[ページ]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=822</guid>
		<description><![CDATA[WordPressのページ機能を使い倒して、blogを超えてマルチなCMSとして活用する為の3つのコツ（2つのスニペットと1つの関数）を紹介してみようと思います。
1.ページテンプレートをWordPressに認識させる
 [...]]]></description>
			<content:encoded><![CDATA[<p>WordPressのページ機能を使い倒して、blogを超えてマルチなCMSとして活用する為の3つのコツ（2つのスニペットと1つの関数）を紹介してみようと思います。</p>
<h3>1.ページテンプレートをWordPressに認識させる</h3>
<p>archive.phpやcategory.phpは必ず作るべきファイルです。さらに、WordPressのページ機能を使う為にはページテンプレートを書く必要があります。</p>
<p>ページテンプレートをWordPressの管理画面で認識させ、使用するにはページテンプレート冒頭に以下のように書きます。テンプレートがTemplateNameと認識されます。</p>
<p>[php]<br />
&lt;?php<br />
/*<br />
Template Name: TemplateName<br />
*/<br />
?&gt;<br />
[/php]</p>
<p><span id="more-822"></span></p>
<h3>2.ページテンプレートで&lt;!&#8211;more&#8211;&gt;タグを機能させる</h3>
<p>実は、index.php以外のページでは、投稿を表示させて&lt;!&#8211;more&#8211;&gt;を使っても記事の折り畳みができません。折り畳みさせるにはテンプレート冒頭に以下を記述することでクリアできます。</p>
<p>[php]<br />
&lt;?php<br />
global $more;<br />
$more = false;<br />
?&gt;<br />
[/php]</p>
<h3>3.query_posts関数でアレコレ表示させる</h3>
<p><a title="テンプレートタグ/query posts - WordPress Codex 日本語版" href="http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/query_posts">テンプレートタグ/query posts &#8211; WordPress Codex 日本語版</a></p>
<p>見て貰うのが一番手っとり早いですが、この関数と条件分岐を使えば、以下のようなことができます。</p>
<ul>
<li>特定カテゴリーの投稿だけ表示</li>
<li>特定の投稿者の記事だけ表示</li>
<li>最新20件のみ表示</li>
<li>上記の組み亜合わせで表示</li>
</ul>
<p>企業サイトであれば、informationページを作成して、最新のinformationカテゴリの投稿のタイトルとページリンクを表示→リンクをクリックするとそれぞれのsingleページに飛ばす、ということができます。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.e2esound.com/20100330/entry-id=822/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.e2esound.com/20100330/entry-id=822" />
	</item>
		<item>
		<title>WordPressプラグインの解析：Hello Dolly</title>
		<link>http://blog.e2esound.com/20100326/entry-id=819</link>
		<comments>http://blog.e2esound.com/20100326/entry-id=819#comments</comments>
		<pubDate>Fri, 26 Mar 2010 13:52:17 +0000</pubDate>
		<dc:creator>yterajima</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Hello Dolly]]></category>
		<category><![CDATA[WordPressプラグイン]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=819</guid>
		<description><![CDATA[WordPressを使用したWeb制作を生業としていると、開発を進めていく上でプラグインの開発やカスタマイズをする必要が出てきます。今日から、（主に気が向いたときに）そんなプラグインの開発・カスタマイズに役立つ情報をまと [...]]]></description>
			<content:encoded><![CDATA[<p>WordPressを使用したWeb制作を生業としていると、開発を進めていく上でプラグインの開発やカスタマイズをする必要が出てきます。今日から、（主に気が向いたときに）そんなプラグインの開発・カスタマイズに役立つ情報をまとめてみたいと思います。</p>
<p>今日はまず、WordPress日本語版2.92.にバンドルされているHello Dollyの構造と機能を分析しながら、WordPressプラグインの作り方を考えてみたいと思います。</p>
<h3>Ⅰ.Hello Dollyって何だろ？</h3>
<p>これについては、WordPress Codexに詳しく書いてありました。</p>
<blockquote><dt><strong>Hello Dolly</strong>（ハロー・ドリー）<br />
これはただのプラグインではありません。ルイ・アームストロングによって歌われた最も有名な二つの単語に要約される、同一世代のすべての人々の希望と情熱を象徴するものです。これは世界で最初の WordPress 公式プラグインです。このプラグインが有効にされると、プラグイン管理画面以外の管理パネルの右上に「ハロー・ドリー」からの歌詞がランダムに表示されます。 </dt>
<dt style="text-align: right;"><a href="http://wpdocs.sourceforge.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3" target="_blank">プラグイン &#8211; WordPress Codex 日本語版:パッケージに含まれているデフォルトプラグイン</a></dt>
</blockquote>
<p>よく分からないYouTubeに行ってみると、「あぁ、これか!!」と思われる楽曲に出会えると思います。</p>
<p><span id="more-819"></span></p>
<h3>Ⅱ．解析に必要なもの</h3>
<p>ここから先を読み解くには以下のものを使用します。</p>
<ul>
<li>Hello Dollyプラグイン…WordPress日本語版をDLして取り出す。(hello.php)</li>
<li>WordPress Codex日本語版：<a href="http://wpdocs.sourceforge.jp/">http://wpdocs.sourceforge.jp/</a></li>
<li>シンタックス・ハイライトできるテキスト・エディタ又はIDE（私は<a href="http://www.kaoriya.net/#VIM72" target="_blank">KaoriYa版Vim</a>）</li>
</ul>
<h3>Ⅲ．Hello Dollyの構造</h3>
<p>早速、ファイルを開いてみましょう。全体で84行と短いので、その構造はシンプルです。順にその内容を確認してみます。</p>
<ol>
<li>コメント</li>
<li>2つのadd_action</li>
<li>3つのユーザー定義関数</li>
</ol>
<h4>1.コメント</h4>
<p>プラグインの中に記述されるコメントは、もちろん開発用に記録されたものもありますが、WordPress管理画面でプラグインの情報として認識されるものです。Hello Dollyでは以下のようになっています。</p>
<p>[php]<br />
/*<br />
Plugin Name: Hello Dolly<br />
Plugin URI: <a href="http://wordpress.org/#">http://wordpress.org/#<br />
</a>Description: これはただのプラグインではありません。Louis Armstrong によって歌われた最も有名な二つの単語、Hello, Dolly に要約された同一世代のすべての人々の希望と情熱を象徴するものです。このプラグインが有効にされると、すべての管理画面の右上に &lt;cite&gt;Hello, Dolly&lt;/cite&gt; からの歌詞がランダムに表示されます。<br />
Author: Matt Mullenweg<br />
Version: 1.5.1<br />
Author URI: <a href="http://ma.tt/">http://ma.tt/</a><br />
*/<br />
[/php]</p>
<p>以上の情報は、管理画面でのプラグイン名称や概要、バージョン情報等として扱われます。この辺りの詳細については、WordPress Codexの<a href="http://wpdocs.sourceforge.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%AE%E4%BD%9C%E6%88%90" target="_blank">プラグインの作成</a>にまとめられています。</p>
<h4>2．2つのadd_action</h4>
<p>プラグインの動作にはWordPressに内包されるプラグインAPIの<strong>フック</strong>への関連付けが必要となります。例えば、index.phpのheaderが呼び出されるタイミングで実行、ログイン。フォームが読み込まれた終盤で実行等です。</p>
<p>フックには2種類あり、1つがHello Dollyの中でも使用される<a href="http://wpdocs.sourceforge.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3_API/%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%95%E3%83%83%E3%82%AF%E4%B8%80%E8%A6%A7" target="_blank">アクションフック</a>、もう1つが<a href="http://wpdocs.sourceforge.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" target="_blank">フィルターフック</a>です。それぞれの詳細については、リンク先をご参照ください。</p>
<p>今回使用されているフックは、<strong>admin_footer</strong>と<strong>admin_head</strong>です。</p>
<blockquote><dt><strong>admin_footer<br />
</strong>管理画面各ページの&lt;body&gt;要素の終盤で実行する。 </dt>
<dt><strong>admin_head<br />
</strong>管理画面各ページの&lt;head&gt;要素内で実行する。</dt>
<dt style="text-align: right;"> <a href="http://wpdocs.sourceforge.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3_API/%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%95%E3%83%83%E3%82%AF%E4%B8%80%E8%A6%A7" target="_blank">プラグイン API/アクションフック一覧 &#8211; WordPress Codex 日本語版</a></dt>
<dt> </dt>
</blockquote>
<p>Hello Dollyでは、admin_footerはHello Dollyの菓子を表示する為、admin_headはCSSを読み込む為に使用されています。</p>
<h4>3.3つのユーザー定義関数</h4>
<p>関数それぞれを確認してみます。</p>
<ul>
<li>hello_dolly_get_lyric()</li>
<li>hello_dolly()</li>
<li>dolly_css()</li>
</ul>
<p>まずは、hello_dolly_get_lyric関数から。関数名の通り、歌詞をランダムに取り出す為の関数です。コメントのうち、「//e」と書かれているものは私が加筆した部分です。</p>
<p>[php]<br />
function hello_dolly_get_lyric() {<br />
/** These are the lyrics to Hello Dolly */<br />
//e 歌詞を変数に格納<br />
$lyrics = &#8220;Hello, Dolly<br />
Well, hello, Dolly<br />
It&#8217;s so nice to have you back where you belong<br />
You&#8217;re lookin&#8217; swell, Dolly<br />
I can tell, Dolly<br />
You&#8217;re still glowin&#8217;, you&#8217;re still crowin&#8217;<br />
You&#8217;re still goin&#8217; strong<br />
//e &#8212;&#8212;&#8212;-中略&#8212;&#8212;&#8212;-<br />
Dolly&#8217;ll never go away<br />
Dolly&#8217;ll never go away<br />
Dolly&#8217;ll never go away again&#8221;;<br />
// Here we split it into lines<br />
//e 文字列を改行までで区切り、配列に格納<br />
$lyrics = explode(&#8220;\n&#8221;, $lyrics);<br />
// And then randomly choose a line<br />
//e 配列の添え字によってランダムに出力<br />
return wptexturize( $lyrics[ mt_rand(0, count($lyrics) - 1) ] );<br />
}<br />
[/php]</p>
<p>難しい処理はありませんが、注意すべき点として<a href="http://codex.wordpress.org/Function_Reference/wptexturize" target="_blank">wptexturize関数</a>が使用されています。この関数はWordPress標準の文字列出力を修正する為の関数です。ランダムに得た文字列をWordPressのルールに則って整形して返しています。</p>
<p>次に、hello_dolly関数です。hello_dolly_get_lyric関数で得られた文字列をpタグで囲って表示させます。</p>
<p>[php]<br />
// This just echoes the chosen line, we&#8217;ll position it later<br />
function hello_dolly() {<br />
$chosen = hello_dolly_get_lyric();<br />
echo &#8220;&lt;p id=&#8217;dolly&#8217;&gt;$chosen&lt;/p&gt;&#8221;;<br />
}<br />
[/php]</p>
<p>この関数は、アクションフックのadmin_footerと関連付けられている為、<strong>管理画面の&lt;/body&gt;タグ終盤で実行</strong>されます。</p>
<p>[php]<br />
// Now we set that function up to execute when the admin_footer action is called<br />
add_action(&#8216;admin_footer&#8217;, &#8216;hello_dolly&#8217;);<br />
[/php]</p>
<p>最後に、dolly_css関数です。管理画面のhead要素の中にCSSを記述します。コメントのうち、「//e」と書かれているものは私が加筆した部分です。</p>
<p>[php]<br />
// We need some CSS to position the paragraph<br />
function dolly_css() {<br />
// This makes sure that the posinioning is also good for right-to-left languages<br />
//e $xは文字列の表示方向によってleftまたはrightになる<br />
$x = ( &#8216;rtl&#8217; == get_bloginfo( &#8216;text_direction&#8217; ) ) ? &#8216;left&#8217; : &#8216;right&#8217;;<br />
//e head要素内に記述するCSSの内容<br />
echo &#8221;<br />
&lt;style type=&#8217;text/css&#8217;&gt;<br />
#dolly {<br />
position: absolute;<br />
top: 4.5em;<br />
margin: 0;<br />
padding: 0;<br />
$x: 215px;<br />
font-size: 11px;<br />
}<br />
&lt;/style&gt;<br />
&#8220;;<br />
}<br />
[/php]</p>
<p><strong>get_bloginf(‘text_direction’)</strong>は、文字列の表示方向を返します。日本語環境の場合にはもちろん<strong>rtl</strong>(R to L)です。言語環境に於いて、表示位置を切り替える配慮がされています。</p>
<p>この関数は、アクションフックのadmin_headと関連付けられている為、<strong>管理画面のhead要素内で実行</strong>されます。つまり、head要素にCSSを追記する形になります。</p>
<p>以上のように、2つの関数がフックによって適時実行されることで管理画面にHello Dollyの歌詞を表示しています。ポイントは、フックです。</p>
<h3>Ⅳ.最後に</h3>
<p>プラグイン開発の方法として、関数の定義とフックの関連付けができれば開発が可能！ということがわかります。</p>
<p>Hello Dollyはとてもシンプルなプラグインです。より複雑なものだと、管理画面にプラグイン専用のページを追加したり、データベースにテーブルを作成したり、JavaScriptを絡めたりと限りなくあります。</p>
<p>もちろん、自分で○○をしよう！と思った場合には、車輪の再開発を防止する為にも、求めている機能が実装されたプラグインが無いのか調べる方がbetterです。しかし、該当するプラグインが無い時、機能が惜しいプラグインがある時には、開発やカスタマイズが必要になります。フックとPHPについて理解できれば、大抵の機能は実装できそうです。</p>
<h3>Ⅴ.次回</h3>
<ul>
<li>A案：何かプラグインを解析してみる</li>
<li>B案：何か思いついたらプラグインを作り始めてみる</li>
</ul>
<p>おまけ<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="320" height="265" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/kmfeKUNDDYs&amp;hl=ja_JP&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="320" height="265" src="http://www.youtube.com/v/kmfeKUNDDYs&amp;hl=ja_JP&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.e2esound.com/20100326/entry-id=819/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.e2esound.com/20100326/entry-id=819" />
	</item>
		<item>
		<title>Codeを色分け表示：Syntax Highlighter for WordPres</title>
		<link>http://blog.e2esound.com/20100311/entry-id=807</link>
		<comments>http://blog.e2esound.com/20100311/entry-id=807#comments</comments>
		<pubDate>Thu, 11 Mar 2010 01:45:00 +0000</pubDate>
		<dc:creator>yterajima</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Syntax Highlighter for WordPres]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=807</guid>
		<description><![CDATA[このblogでも時々はプログラム・コードを公開していますが、そろそろ見やすくしたい！ということで「Syntax Highlighter for WordPress」を導入してみました。
早速、書いてみるテスト。
使うコー [...]]]></description>
			<content:encoded><![CDATA[<p>このblogでも時々はプログラム・コードを公開していますが、そろそろ見やすくしたい！ということで<a href="http://wppluginsj.sourceforge.jp/syntax-highlighter/" target="_blank">「Syntax Highlighter for WordPress」</a>を導入してみました。</p>
<p>早速、書いてみるテスト。<br />
使うコードは以下のもの。</p>
<blockquote><p>
    $str = &#8220;Hiliter Test&#8221;;<br />
    echo $str;<br />
?></p>
</blockquote>
<p>[php]<br />
<?php<br />
    $str = "Hiliter Test";<br />
    echo $str;<br />
?><br />
[/php]</p>
<p>言語名を表示する為に「lang_name=&#8221;true&#8221;」を追加。<br />
[php lang_name="true"]<br />
<?php<br />
    $str = "Hiliter Test";<br />
    echo $str;<br />
?><br />
[/php]</p>
<p>簡易表示機能もあるらしいので「light=&#8221;true&#8221;」をテスト。<br />
[php light="true"]<br />
<?php<br />
    $str = "Hiliter Test";<br />
    echo $str;<br />
?><br />
[/php]</p>
<p>これはプログラム・コードを紹介するには必須な気がしてまいりました。早く採用するべきでしたね。このところjQueryにも手を出しているので、紹介していきたいと思っています。</p>
<p>おまけ：<br />
コマンドラインから「php -s 対象ファイル.php」をするとHTML用にハイライトされた結果が帰ってきます。<br />
上記のファイルだとこんな感じ。（codeタグで囲まれています）</p>
<p><code><span style="color: #000000"><br />
<span style="color: #0000BB"><?php<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$str&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"Hiliter&nbsp;Test"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">$str</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?><br /></span><br />
</span><br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.e2esound.com/20100311/entry-id=807/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.e2esound.com/20100311/entry-id=807" />
	</item>
		<item>
		<title>実践：ScribeFire3.5のエラー解消方法</title>
		<link>http://blog.e2esound.com/20100220/entry-id=801</link>
		<comments>http://blog.e2esound.com/20100220/entry-id=801#comments</comments>
		<pubDate>Fri, 19 Feb 2010 16:30:00 +0000</pubDate>
		<dc:creator>yterajima</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[scribefire]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=801</guid>
		<description><![CDATA[ScribeFire3.5をインストールし、起動するとこんな画面に。。。

これは参った！パースエラー！！
しかも、海外ユーザーの様子を見る限り、動いているらしいので日本語版のみ？のエラーかと思われました。
そして、なす [...]]]></description>
			<content:encoded><![CDATA[<p>ScribeFire3.5をインストールし、起動するとこんな画面に。。。<br />
<img src="http://farm3.static.flickr.com/2679/4369985695_3ef3f8c41b.jpg" alt="scribefire35_error.gif" width="500" height="96" /></p>
<p>これは参った！パースエラー！！<br />
しかも、海外ユーザーの様子を見る限り、動いているらしいので日本語版のみ？のエラーかと思われました。</p>
<p>そして、なす術なく放置していましたが先ほど見つけましたよ、解決方法。<br />
Firefox更新情報Wikiブログ:<a href="http://fxwiki.blog63.fc2.com/blog-entry-246.html" target="_blank">ScribeFire 3.5のエラー解消法</a></p>
<p>早速適用してみたところ、無事に起動しました。</p>
<p>ただ、気になる点として<a href="http://www.scribefire.com/whats-new/3-5/comment-page-1/" target="_blank">WordPressのカスタムフィールドを扱えるようになった</a>らしいのですが、方法がよく分からんのです。<br />
むーん。</p>
<p>・・・と思ったら投稿時に設定することが判明しました。これは！！イイ！！</p>
<p>環境：WinXP sp3,Firefox3.6</p>
<div style="width: 500px; border: 1px solid #aad5f0; background: none repeat scroll 0% 0% #ffffff; color: #000000;"><a style="background: url(http://cdn.mahalo.com/content/assets/styles/mpages/images/widget-header.png) no-repeat scroll right center transparent; display: block; height: 27px; padding: 7px 0pt 0pt 7px; font-size: 14pt; color: #336633;" href="http://www.mahalo.com/scribefire">Scribefire</a></p>
<div style="padding: 4px;"><a style="float: right; color: #336633;" href="http://www.mahalo.com/widget-example/scribefire">Embed this widget </a><span> See full results for <a style="color: #336633;" href="http://www.mahalo.com/scribefire">Scribefire</a></span></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.e2esound.com/20100220/entry-id=801/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.e2esound.com/20100220/entry-id=801" />
	</item>
		<item>
		<title>MySQLのバージョンアップ@lolipop</title>
		<link>http://blog.e2esound.com/20100130/entry-id=794</link>
		<comments>http://blog.e2esound.com/20100130/entry-id=794#comments</comments>
		<pubDate>Sat, 30 Jan 2010 09:30:00 +0000</pubDate>
		<dc:creator>yterajima</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.e2esound.com/?p=794</guid>
		<description><![CDATA[lolipopサーバーのDB、MySQLがver.5になったのでバージョンアップを行いました。
作業自体は簡単。
1.ｌolipop管理画面からDBバージョンアップ（テスト）を行う。
新しいデータベースをver.5で作っ [...]]]></description>
			<content:encoded><![CDATA[<p>lolipopサーバーのDB、MySQLがver.5になったのでバージョンアップを行いました。<br />
作業自体は簡単。</p>
<p><span style="font-weight: bold;">1.ｌolipop管理画面からDBバージョンアップ（テスト）を行う。</span><br />
新しいデータベースをver.5で作ってくれます。<br />
全く異なるDBサーバーです。</p>
<p><span style="font-weight: bold;">2.問題ないかテストしてみる。</span><br />
本来ならテスト用の環境を作るべきところを、そのまま本番環境で（ぇ<br />
WordPressをインストールしたディレクトリ直下の<span style="color: #ff0000;">「config.php」</span>のデータベース名、データベースサーバー名等変更します。<br />
→そして保存。</p>
<p>この段階で、ver.5のMySQLを使用したWordPressに早変わり。</p>
<p><span style="font-weight: bold;">3.最後に正式適用。</span><br />
このままだと、作られたDBは削除されてしまいます。テスト環境として一時的に作成されている為です。<br />
そこで、再度管理画面に入り、DBを正式適用します。</p>
<p>これであなたのlolipopもver.5のMySQLでサックサクですね。<br />
作業自体は簡単です。是非是非。</p>
<p>*よい子はテスト環境を作ってやりましょう。</p>
<div class="zemanta-pixie"><img src="http://img.zemanta.com/pixy.gif?x-id=e61131f2-790f-8877-8f2b-c896ded7ccc8" class="zemanta-pixie-img" /></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.e2esound.com/20100130/entry-id=794/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.e2esound.com/20100130/entry-id=794" />
	</item>
	</channel>
</rss>
