<?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/"
	>

<channel>
	<title>ウェビンブログ &#187; WordPress</title>
	<atom:link href="http://blog.webbingstudio.com/tag/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.webbingstudio.com</link>
	<description>札幌のWebデザイナー・カスタマイズアドバイザー WebbingStudioのよしなし語り</description>
	<lastBuildDate>Fri, 30 Jul 2010 00:11:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>【OSC2010北海道】WordPressのセミナーのレポートと補足</title>
		<link>http://blog.webbingstudio.com/2010/07/osc2010do.html</link>
		<comments>http://blog.webbingstudio.com/2010/07/osc2010do.html#comments</comments>
		<pubDate>Wed, 30 Jun 2010 16:41:46 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Hokkaido]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[勉強会]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1419</guid>
		<description><![CDATA[6月25日の「オープンソース・カンファレンス2010北海道」で行われたセミナー
「世界標準ブログツールWordPressの最新版3.0と豊富なプラグイン」のレポートです。
講師：WordBench札幌の田中さんのセミナー [...]]]></description>
			<content:encoded><![CDATA[<p>6月25日の「<a href="http://www.ospn.jp/osc2010-do/">オープンソース・カンファレンス2010北海道</a>」で行われたセミナー<br />
「世界標準ブログツールWordPressの最新版3.0と豊富なプラグイン」のレポートです。</p>
<p>講師：WordBench札幌の田中さんのセミナー資料はこちらです。<br />
<a href="http://another.maple4ever.net/archives/1270/">http://another.maple4ever.net/archives/1270/</a></p>
<p>拙記事ではセミナー内容の捕足、実務で扱うものとしての雑感などを交えます。<br />
まだ3.0をちゃんといじっていないので、3.0についてはあくまで聞きかじりの段階であることはご了承ください。</p>
<p><span id="more-1419"></span></p>
<blockquote><p><strong>WordPressはCMS</strong></p>
<ul>
<li><a href="http://www.hirose-kohmi.jp/blog/">広瀬香美ブログ</a></li>
<li><a href="http://www.100shiki.com/">百式</a></li>
<li><a href="http://www.kurashi-no-techo.co.jp/">暮らしの手帖</a></li>
</ul>
<p>WordPress3.0は6/25時点で1,121,440ダウンロード</p></blockquote>
<p>WordPressは時系列主体のサイトに強いように思われますが、「暮しの手帖」のような時系列に添わない、個性的な一覧ページを持ったサイト構築も充分可能です。</p>
<p>とは言え、様々な実務案件を経験してきた視点から言えば、静的ファイルとの共存が難しい、テーマファイルの見通しが良くないなどの欠点から多人数で連携して制作するサイトにはあまりおすすめできません。</p>
<p>尚、私のブログもWordPressです。一覧ページの体裁が普通のブログと違っていたり、a-blog cmsベースの本サイトとインクルードで連携していたりします。</p>
<blockquote><p>どのようなコンテンツマネージメントシステムということを知る にはそのデータ構造を知ることが早道です。<br />
WordPress 3.0 の新機能を交えまして、まずは WordPress の データ構造を紹介していきます。</p>
<p><strong>WordPressのデータ構造（記事情報）</strong></p>
<p>ポストとページの二種類＝post_type</p>
<ol>
<li>ポスト：時系列（日記／新着情報など）</li>
<li>ページ：固定的（自己紹介）</li>
</ol>
<p>ポストとページのメタ情報</p>
<ul>
<li> タイトル</li>
<li> 投稿日・投稿者</li>
<li> 修正日</li>
<li> パスワード</li>
<li> トラックバック先</li>
<li> 分類情報(カテゴリ・タグ・タクソノミー)</li>
<li> リビジョン</li>
<li>等々</li>
</ul>
</blockquote>
<p>WordPressの記事情報は時系列とカテゴリーによって分類することを前提にした「ポスト（記事）」と、1ページごとに独立した「ページ」に分類されます。</p>
<p>ただ、ページでも時系列の整理が可能だったり、後述の「カスタムタクソノミー」でうまくタグ分類すると、両者の区別はほとんどつかなくなってきます。<br />
この辺りの特徴は、MovableTypeと非常に良く似ています。</p>
<blockquote><p>
<strong>カスタム投稿</strong></p>
<p>WordPress3.0からの新機能<br />
ポスト／ページに加えて新しいタイプを定義できる</p>
<p>タイトル不要／日付不要／トラックバックが必要／などなど</p>
<p>旧来のポスト／ページもカスタム投稿のひとつとして<br />
デフォルト実装されている＝再定義ができる
</p></blockquote>
<p>カスタム投稿機能は、マルチブログ以上の目玉機能なんじゃないかと思っています。<br />
上の説明の通り「必要／必要ない項目」を自分で定義することが可能なので「タイトル・本文がなく、カスタムフィールドのみで構成された記事」などの大胆な構成も可能なようです。<br />
MovableType4以降で登場している「表示オプション」に近い印象です。</p>
<p>管理画面上の入力項目の順番設定はできるのか、旧来のプラグインや表示パフォーマンスへの影響はないかなど気になるところもありますが、使いこなせば無償で使える軽量CMSとしての良さが増しそうです。</p>
<blockquote><p>
<strong>カテゴリーとタグ</strong></p>
<p>記事に対する抽出条件のひとつ</p>
<p>1. カテゴリー→階層構造を持たせられる<br />
2. タグ→フラットな分類</p>
<p><strong>カスタム分類（タクソノミー）</strong></p>
<p>任意のセット分類を追加できる<br />
1サイトに複数のタグクラウドを生成できる</p>
<p>2.9から機能強化<br />
ただし分類の新規作成はプラグインが必要（<a href="http://wordpress.org/extend/plugins/custom-post-type-ui/">custom-post-type-ui</a>）
</p></blockquote>
<p>カスタムタクソノミーは、「複数の独立した階層カテゴリーを作成できる機能」と解釈した方がいいと思います。前バージョンから概念自体は存在していましたが、3.0以降では、管理画面からの設定が可能になりました。</p>
<p>こちらの記事で詳しく説明されている通り、導入の手順が面倒な割に必要性が薄い機能だったりします＾＾；</p>
<p><a href="http://www.odysseygate.com/archives/1620">カスタムタクソノミー(Custom Taxonomy)の導入と使い方 [WordPress 3.0]</a></p>
<blockquote><p>
<strong>その他の情報</strong></p>
<p>コメント<br />
記事に対する外部からのコメント</p>
<p>ユーザー権限<br />
複数のユーザーが投稿できるようにユーザー管理ができる<br />
購読者／管理者／編集者／作成者／投稿者<br />
管理画面のアクセス権限や投稿、修正制限<br />
投稿から公開へのワークフローが持てる</p>
<p>オプション<br />
サイトの動作システム情報</p>
<p>リンク先<br />
他サイトとのつながりを格納する情報／XFNを使える</p>
<p>ポストメタ（カスタムフィールド）<br />
記事に対するここまでで出てきた以外のカスタムメタ情報を持たせる
</p></blockquote>
<p>ユーザー権限については捕足が必要です。<br />
ほとんどの安価なCMSもそうですが、「上司」「部下」のアカウントがあって、部下が更新すると昇任者である上司に自動でメールが送られる…といった機能は、WordPress2.xの段階ではプラグインがなければできません。<br />
MUと統合したWordPress3.0はもしかしたらできるかもしれないのですが、まだ未確認です。すいません。</p>
<p>2.xでの実装方法についてはこちらの記事を参照してください。</p>
<p><a href="http://technolog.jp/website/cms/1900">WordPress &#8211; 公開承認ワークフロー &#8211; 新規公開 | Technolog.jp</a></p>
<p>リンクの「<a href="http://gmpg.org/xfn/creator-ja">XFN</a>」というのは人間関係を表現したフォーマットなのですが、<br />
<strong style="font-size: 150%;">なんで恋愛関係だけこんなに充実してますのん</strong><br />
と必要性に疑問を感じるわけですよ。ハイ。</p>
<blockquote><p>
<strong>その他の情報続き</strong></p>
<p>マルチブログ<br />
3.0から利用可能<br />
これまでに出てきた情報を複数もたすことで、複数のサイトを持つ</p>
<p>データフロー<br />
管理画面操作からのデータベースへの格納<br />
コメント者からのコメントの投稿<br />
トラックバック／ピンバック<br />
XMLRPC／ATOM経由でのデータベースへの格納</p>
<p>出力系（テンプレートタグ）<br />
WordPressテーマの実態<br />
テンプレートタグはデータ構造をHTMLやRSSで出力する関数群<br />
データの抽出を行うループ系の関数を起点に、条件取得された 情報を取得<br />
現在は主にブラウザ用に簡単に HTML 出力する機能が提供されている
</p></blockquote>
<p>注目していたマルチブログですが、今回のセミナーではデータ構造の説明の一部にとどまりました。<br />
MovableType4、SOY CMSのように管理画面からウィザードを介して作成できるのかと思っていましたが、現時点では外部からの.htaccessの編集などが必要なようです。<br />
サブドメインも想定して設計されているのはありがたいところです。</p>
<p><a href="http://lainforest.org/67/wordpress-3-0%E3%81%A7%E8%A4%87%E6%95%B0%E3%83%96%E3%83%AD%E3%82%B0%E3%82%92%E4%BD%BF%E3%81%86%E8%A8%AD%E5%AE%9A/">Wordpress 3.0で複数ブログを使う設定 &laquo;  lainforest.org</a></p>
<p>出力系の説明にある通り、WordPressのタグはテンプレートエンジンではなく、PHPの関数です。<br />
なのでテーマにはそのまんま関数を書きます。<br />
PHPをある程度かじれば融通が利くのがありがたいところですが、プログラマさんがWordPressのテーマファイルを見たら、ちょっと面食らうかもしれません。</p>
<blockquote><p>
<strong>プラグイン</strong></p>
<p>add_filter／add_actionで既存のタグ／関数に自作関数をフックできる<br />
既存の関数も全てフックされているので不要なものを除外できる</p>
<p>functions.phpでテーマ専用の関数を定義できる</p>
<p>※簡単に実装できる反面、プログラム構造を追うのに慣れがいる</p>
<p>フィルターの例</p>
<p>記事の特定文字列を加工し、HTMLを付与<br />
（記事中の「hiromasa」をタグで囲む）</p>
<p>ショートコード<br />
（[tegaki]〜[/tegaki]で囲んだ箇所がカスタムフォントに変わる）</p>
<p>アクション（template_redirect）<br />
通常のテーマに情報を渡さず、携帯用テーマの処理をさせる（例：Ktai Style）</p>
<p>ウィジェット<br />
サイドバーのウィジェットを追加する</p>
<p>管理画面への機能追加<br />
3.0からの新テーマはヘッダー画像を差し替えできる</p>
<p>時間指定実行（wp_cron）<br />
コアには既に予約投稿の機能がある</p>
<p>必要なプラグインがあったなら「コア機能に対する変更」という視点で<br />
調査を行うと比較的簡単に実現可能</p>
<p>既存のプラグイン修正時もコアのどの部分に介在しているのかを調査し、<br />
そこからソースコードを追うとわかりやすい
</p></blockquote>
<p>WordPressは「フック」という概念でコア関数を管理しています。</p>
<p>既存のタグに新しい関数を定義する「add_filter」と</p>
<pre><code>add_filter( 'the_content', 'hogehoge' );</code></pre>
<p>WordPress内の特定の処理で関数を発動させる「add_action」があります。</p>
<pre><code>add_action( 'wp_head', 'hogehoge' );</code></pre>
<p>「コアのどの部分に介在しているのかを調査し、そこからソースコードを追う」というのが、プログラミングに慣れていないと難しいです。<br />
phpファイルを内部検索できるソフトなどで調べる手もありますが、<br />
WordPressのコアファイルを公開している、こちらのサイトが便利です。</p>
<p><a href="http://phpxref.ftwr.co.uk/wordpress/nav.html?_functions/index.html">PHP Cross Reference of WordPress</a></p>
<p>ページ右上にあるサーチボックスからタグ名、関数名を入力するとどのファイルの何行目にコードがあるのか、を調べることができます。</p>
<blockquote><p>
<strong>WordPressの魅力</strong></p>
<p>ブログを起源とするプロダクトだがデータ構造がシンプル<br />
特に3.0から基本構造や分類の解放を行っているためCMSとしても使いやすくなった</p>
<p>個性が強いブログサイトを構築する手段としても人気があるので<br />
テーマやプラグインに美術的なものが多く配布されている</p>
<p>個性をだすべく、システムもそれに答える形で拡張されていく<br />
テーマやプラグインからの介在の余地が大きく<br />
様々な要求に応えられるカスタマイズが可能</p>
<p>サイトへの導入実績が多くそのノウハウが得られやすい</p>
<p>WordCamp／WordBenchなどオフラインコミュニケーションも活発で楽しい</p>
<p><strong>WordBenchについて</strong></p>
<p>WordPress の地域コミニュティー<br />
実はWordBench札幌としてのオフライン活動はこのOSC北海道が初めて</p>
<p>参加お待ちしております<br />
<a href="http://wordbench.org/">http://wordbench.org/</a>
</p></blockquote>
<p>セミナーのレポートは以上です。</p>
<p>田中さんが述べられているように、WordPressはPHPの知識があれば柔軟なカスタマイズができることが魅力です。<br />
このためかデザイナーが介入しやすく、芸術品のようなテーマ、とても無料とは思えないような高度なテーマが多数公開されています。<br />
管理画面の完成度の高さも特筆すべきところです。</p>
<p>一方で「<strong>安くて簡単でなんでもできる</strong>」という情報が一人歩きしてしまい、WordPressの仕様では困難な案件、ライセンス料をかんがみても他のCMSの方が安心して運用できそうな案件もWordPress前提で来ることが増えているのが、私の悩みだったりします。</p>
<p>そういう意味で、新機能を派手にアピールするのでなく、WordPressを更に詳しく知るための解説に徹した田中さんのセッションは好感を持ちました。</p>
<p>MUと統合し、更に奥深くなったWordPressはこれからも注目すべきCMSだと思います。</p>

<a href="http://twitter.com/?status=RT+%40%3A+%E3%80%90OSC2010%E5%8C%97%E6%B5%B7%E9%81%93%E3%80%91WordPress%E3%81%AE%E3%82%BB%E3%83%9F%E3%83%8A%E3%83%BC%E3%81%AE%E3%83%AC%E3%83%9D%E3%83%BC%E3%83%88%E3%81%A8%E8%A3%9C%E8%B6%B3+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2F2dwoyjh&amp;in_reply_to_status_id=17426918794" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2010/07/osc2010do.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPressを一部のディレクトリのみ有効にする：完全版</title>
		<link>http://blog.webbingstudio.com/2010/06/wp_directories_2.html</link>
		<comments>http://blog.webbingstudio.com/2010/06/wp_directories_2.html#comments</comments>
		<pubDate>Fri, 11 Jun 2010 10:06:30 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[Customize]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1403</guid>
		<description><![CDATA[
先月書いた「WordPressを一部のディレクトリのみ有効にする」カスタマイズの完全版です。

前回の記事では

未保存の記事のプレビュー
ブログ内検索

ができませんでしたが、今回はそれも可能になっています。
ただし [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.webbingstudio.com/uploads/2010/06/wp_directories.jpg"><img src="http://blog.webbingstudio.com/uploads/2010/06/wp_directories-200x184.jpg" alt="" title="wp_directories" width="200" height="184" class="alignleft size-medium wp-image-1404" /></a></p>
<p>先月書いた「<a href="http://blog.webbingstudio.com/2010/05/wp_directories.html">WordPressを一部のディレクトリのみ有効にする</a>」カスタマイズの完全版です。</p>
<div class="clear"></div>
<p>前回の記事では</p>
<ul>
<li>未保存の記事のプレビュー</li>
<li>ブログ内検索</li>
</ul>
<p>ができませんでしたが、今回はそれも可能になっています。<br />
ただし、サイトのホーム（index.html）にも細工が必要で、手順も複雑になります。</p>
<p>詳しくは追記以下で。</p>
<p><span id="more-1403"></span></p>
<h3>1: WordPressの設定</h3>
<h4>WordPressを下層ディレクトリに置く</h4>
<p>WordPress本体はひとつ下層に設置します。<br />
この例では「wordpress」というディレクトリに設置したとして話を進めます。</p>
<p>※私はセキュリティ上の理由などで、ディレクトリ名＝CMS名にしないことが多いです</p>
<h4>「WP No Category Base」を追加する</h4>
<p>このカスタマイズをするには、プラグイン「WP No Category Base」が必要です。<br />
これはWordPressで出力されるカテゴリーアーカイブのURLから、最初に必ず付与される「category」を取り除きます。<br />
若干負荷が上がりますが、CMS的な構築をするには必須のプラグインです。</p>
<p>WordPress公式のプラグインディレクトリで入手できます。<br />
<a class="blank" href="http://wordpress.org/extend/plugins/wp-no-category-base/">http://wordpress.org/extend/plugins/wp-no-category-base/</a></p>
<p>特に設定は必要なく、アップロードして有効にするだけでOKです。</p>
<h4>一般設定／パーマリンク設定を変更する</h4>
<p>次に、WordPressの「設定→一般」と「設定→パーマリンク設定」を変更します。</p>
<h5>一般設定</h5>
<p>「ブログのアドレス」を「サイトルート」に設定します。<br />
最初の図の「www」のURLが「http://example.com/」だった場合はそれを入力して更新します。<br />
このとき、サイトルートに.htaccessが書き出されます。<br />
自作の.htaccessを置いていると上書きされてしまうので、前もって避難させるか、書き込み禁止にしてください。</p>
<h5>パーマリンク設定</h5>
<p>「カスタム構造」にチェックを入れて、以下のように記入します。</p>
<pre><code>/%category%/%post_id%/</code></pre>
<p>ブログのURLが「http://example.com/」だった場合、カテゴリーがc1、IDが6の記事のURLは<br />
<em>http://example.com/c1/6/</em><br />
となります。</p>
<p>ここまで作業したら、<strong>サイトルートに書き出されている.htaccessを削除してしまいます</strong>。</p>
<h3>2: .httaccessの設定</h3>
<p>以下のように記述した、.htaccessをサイトルートに新しく設置します。<br />
（既にある場合は追記します）</p>
<pre><code>AddType application/x-httpd-php .html

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^\?([a-z0-9]+)=([0-9]+) wordpress/?$1=$2 [L]
RewriteRule ^(date|tag|feed)/(.*) wordpress/index.php [L]

RewriteRule ^(c1|c2|c3|c4)/(.*) wordpress/index.php [L]
RewriteRule ^category/(c1|c2|c3|c4)/(.*) wordpress/index.php [L]
RewriteRule ^(c1|c2|c3|c4)/feed/(.*) wordpress/index.php [L]

</IfModule>
# END WordPress</code></pre>
<h4>AddType application</h4>
<p>HTMLファイルでPHPスクリプトを使用可能にします。<br />
ホームが「index.php」で構わない場合は必要ありません。</p>
<h4>RewriteBase</h4>
<p>「/」はサーバールートからの相対パスです。<br />
もしもサイトルートが「test」だと「/test/」となります。</p>
<h4>RewriteRule</h4>
<p>条件を満たした場合に、WordPressのindex.phpを呼び出す、という指定です。<br />
最初の二行は変更しないでください。</p>
<p>三行目以降の<strong>(c1|c2|c3|c4)</strong>に、WordPressを有効にしたいカテゴリー（ディレクトリ名）をパイプ区切りで指示します。<br />
「information」「blog」なら(information|blog)と書きます。<br />
「information/aaa」「blog/bbb/ccc」などの下層ディレクトリもWordPress配下となります。</p>
<p>アップロードしたら、<strong>.htaccessのパーミッションを444にしてください</strong>。<br />
書き込み可になっていると、WordPressの設定を変更したときに上書きされてしまいます。</p>
<h3>3: index.htmlの設定</h3>
<p>最後に、サイトのホームにあたるindex.htmlに細工をします。</p>
<h4>ファイル名を変更する</h4>
<p>index.htmlの内容はそのままで、ファイル名を任意に変更してください。<br />
ここでは「home.html」に変更したものとします。</p>
<p>このままだとhome.htmlでもアクセスできてしまうので、気になる場合は「include」などのディレクトリに入れ、アクセス制限をかけて対応してください。</p>
<h4>新規にindex.htmlを作成する</h4>
<p>index.htmlがなくなるので、以下のように記述したindex.htmlを新規に作成し、サーバーにアップします。</p>
<pre><code>&lt;?php
if(($_GET['s'])||($_GET['p'])) {
	//検索かプレビューのGET値があればWordPressとして処理
	define('WP_USE_THEMES', true);
	require('wordpress/wp-blog-header.php');
} else {
	//なければ静的コンテンツを呼び出す
	require('home.html');
}
?&gt;</code></pre>
<p>コメントで書いてある通りですが、検索かプレビューだとWordPressとして処理を開始し、それ以外であれば先程リネームしたHTMLをそのまま出力します。</p>
<hr />
<p>ここまでで作業は終わりです。<br />
正常に動作していれば、</p>
<ul>
<li>未保存のプレビューと検索結果</li>
<li>指定したカテゴリーと関連フィード</li>
<li>日別アーカイブ</li>
<li>タグサーチ</li>
</ul>
<p>のみWordPressが起動し、それ以外は静的コンテンツがあるサーバーと同じ挙動になります。<br />
（例えカテゴリーを作っていても表示されません）</p>
<h3>4: 注意点</h3>
<ol>
<li>一般的なサーバーで動作確認をしていますが、設置条件やサーバー状況によってはうまくいかないかもしれません。必ず検証してください。</li>
<li>WordPressの404ページは有効になりません。必要な場合は.htaccessにエラーページ指定を追記して自作してください。</li>
<li>HTML/PHP関係は、.htaccessの指定方法が上記と異なるサーバーも多いです。サーバー会社のマニュアルをチェックしたり「サーバー名 html php」などでグーグル先生にお尋ねしてください。</li>
</ol>

<a href="http://twitter.com/?status=RT+%40%3A+WordPress%E3%82%92%E4%B8%80%E9%83%A8%E3%81%AE%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AE%E3%81%BF%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%EF%BC%9A%E5%AE%8C%E5%85%A8%E7%89%88+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2F2dgo625&amp;in_reply_to_status_id=15917908239" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2010/06/wp_directories_2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPressをもっとカスタマイズするための、記事情報の解析方法</title>
		<link>http://blog.webbingstudio.com/2010/05/wordpress_posts.html</link>
		<comments>http://blog.webbingstudio.com/2010/05/wordpress_posts.html#comments</comments>
		<pubDate>Fri, 14 May 2010 17:16:12 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1346</guid>
		<description><![CDATA[
WordPressは素晴らしいフリーテーマがたくさんあるので、それをいじるだけでもカスタマイズは習得できます。
ですが、実務的なカスタマイズに必要となる「詳しい記事情報を解析する方法」は意外と紹介されていません。
簡単 [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-1347" title="posttest" src="http://blog.webbingstudio.com/uploads/2010/05/posttest.jpg" alt="" width="480" height="387" /></p>
<p>WordPressは素晴らしいフリーテーマがたくさんあるので、それをいじるだけでもカスタマイズは習得できます。<br />
ですが、実務的なカスタマイズに必要となる「<strong>詳しい記事情報を解析する方法</strong>」は意外と紹介されていません。</p>
<p>簡単に実験できるテーマもおまけにつけて、ざっくりまとめてみました。<br />
PHPのことはあまりよくわからない…という人たちは、これをとっかかりに学習してみてはいかがでしょうか。</p>
<p><span id="more-1346"></span></p>
<h3>０：記事情報解析用のテーマ「posttest」</h3>
<p>これは、記事情報を解析するための構文だけが書いてある、実験用のテーマファイルです。<br />
ブログ用のテーマではないので「index.php」しかありませんがw<br />
この先を読みながら、あなたのブログに反映して試してみてください。</p>
<p><a class="blank" href="http://webbingstudio.com/souvenir/theme_posttest.zip">記事情報解析用のテーマ「posttest」ダウンロード</a></p>
<h3>１：サーバー情報を得る</h3>
<p>サーバー情報を取得、出力します。<br />
これはWordPressの独自タグではなくPHP標準の関数です。<br />
<strong>※第三者が閲覧できるページで実行しないようにしてください。</strong></p>
<pre><code>&lt;?php
	print_r($_SERVER);
?&gt;
</code></pre>
<h3>２：カテゴリー情報を得る</h3>
<p>カテゴリー情報を取得、出力します。<br />
出力内容は「$posts[0]のカテゴリー情報」なので、複数カテゴリーが指定されている可能性もあります。<br />
また、<strong>出力結果の記事が一件もないと、この内容もNULLになってしまいます</strong>。出力結果がゼロの可能性があるけれどカテゴリーの情報を取得したい…という場合は、<del datetime="2010-05-14T17:16:16+00:00">ちゃんと引数にカテゴリーIDを明示するようにしてください。</del>【訂正】この関数は引数がありません。すいません。DBから直接取得した方が早いかもしれません（汗）</p>
<pre><code>&lt;?php
	$cat = get_the_category();
	print_r($cat);
?&gt;
</code></pre>
<h3>３：記事情報を解析</h3>
<p>query_posts関数を実行していない状態では、<br />
オブジェクト「$posts」にはそのページに沿った記事情報が入っています。<br />
単純な出力は「&lt;?php while ( have_posts() ) : the_post() ?&gt;～&lt;?php endwhile ?&gt;」でできますが、PHPのforeach関数でも取得することができます。</p>
<pre><code>&lt;?php while ( have_posts() ) : the_post() ?&gt;
&lt;?php print_r ($post) ?&gt;
&lt;?php endwhile ?&gt;
</code></pre>
<h3>４：抽出条件の上書き</h3>
<p>query_posts関数を使用すると、出力される記事の条件を変更することができます。<br />
グローバル変数「query_string」を上書きするのが確実です。<br />
※ID「5」の記事を抽出するようになっています。構文の「cat=5」のところを任意で書き換えてください</p>
<p>指定できるクエリについては<a class="blank" 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">WordPress Codex内「query posts」の解説</a>を参照してください。</p>
<pre><code>&lt;?php
	$Q = "&amp;category_name=&amp;cat=5";
	global $query_string;
	query_posts($query_string . $Q);
?&gt;
</code></pre>
<h3>５：the_postを再実行後記事情報を解析</h3>
<p>query_posts関数を使用後、もう一度<br />
「&lt;?php while ( have_posts() ) : the_post() ?&gt;～&lt;?php endwhile ?&gt;」を実行すると、記事情報が新しく定義したものに変更されます。<br />
（３の後に４→５と実行して内容を比較してみてください）</p>
<pre><code>&lt;?php
	while ( have_posts() ){
		the_post();
		print_r ($post);
	}
?&gt;
</code></pre>
<h3>６：オブジェクト内容の取得</h3>
<p>記事タイトルだけ必要な場合は、「-&gt;」でキーを指定することで、文字列で習得できます。<br />
配列のように見えますが、<strong>$post['post_title']では取得できない</strong>ことに注意してください。</p>
<pre><code>&lt;?php
	while ( have_posts() ){
		the_post();
		echo $post-&gt;post_title . '&lt;br /&gt;';
	}
?&gt;
</code></pre>
<h3>７：補足</h3>
<p>WordPressのpostに入っている値は、全てPHPエンコード処理がされています。<br />
このため、クォーテーションやバックスラッシュが含まれる記事を関数に投入しても問題は起きません。<br />
ただし、<strong>HTMLはエンコードされていない</strong>ので、HTMLタグが反映されると危ない状況で使用する場合は<br />
strip_tags関数やhtmlspecialchars関数を通すようにしましょう。</p>
<pre><code>&lt;?php
	while ( have_posts() ){
		the_post();
		echo strip_tags($post-&gt;post_content) . '&lt;hr /&gt;';
	}
?&gt;
</code></pre>
<hr />
<p>WordPressはPHPの知識があれば、簡単にカスタマイズできるのが魅力です。<br />
ですが、他のCMSと違ってプログラムを直に扱うため、テーマファイルの見通しが利きにくく、予想外の不具合やセキュリティホールが発生する可能性が高い側面があります。<br />
趣味レベルなら問題ないですが、実務でWordPressを構築する場合は仕様やリスクを考慮して正しく利用したいものです。</p>

<a href="http://twitter.com/?status=RT+%40%3A+WordPress%E3%82%92%E3%82%82%E3%81%A3%E3%81%A8%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E3%80%81%E8%A8%98%E4%BA%8B%E6%83%85%E5%A0%B1%E3%81%AE%E8%A7%A3%E6%9E%90%E6%96%B9%E6%B3%95+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2F27yz45b&amp;in_reply_to_status_id=13987172930" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2010/05/wordpress_posts.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPressを一部のディレクトリのみ有効にする</title>
		<link>http://blog.webbingstudio.com/2010/05/wp_directories.html</link>
		<comments>http://blog.webbingstudio.com/2010/05/wp_directories.html#comments</comments>
		<pubDate>Mon, 10 May 2010 07:17:29 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[Customize]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1341</guid>
		<description><![CDATA[2010/6/11追記：
未保存の記事プレビュー／検索にも対応した、完全版をアップしました。
>>http://blog.webbingstudio.com/2010/06/wp_directories_2.html

 [...]]]></description>
			<content:encoded><![CDATA[<p><ins style="display: block; margin: 0 0 20px; padding: 10px; background: #FFE6F9; text-decoration: none;">2010/6/11追記：<br />
未保存の記事プレビュー／検索にも対応した、完全版をアップしました。<br />
>><a href="http://blog.webbingstudio.com/2010/06/wp_directories_2.html">http://blog.webbingstudio.com/2010/06/wp_directories_2.html</a></ins></p>
<blockquote><p><img class="alignnone size-full wp-image-1340" title="ディレクトリ構造のサンプル" src="http://blog.webbingstudio.com/uploads/2010/05/wp_directories.jpg" alt="図：ディレクトリ構造のサンプル" width="401" height="369" /></p>
<p>上図のようなディレクトリ構造で、「information」と「blog」だけWordPressで更新できるようにしたい</p>
</blockquote>
<p>…という案件が来ると、普通はinformationとblog、それぞれを起点にしたWordPressを個別に設置します。</p>
<p>WordPressは、バージョン2.9の段階では、<strong>ブログのルートより下層に静的ファイルを置いても表示されない</strong>からです。<br />
ですが、</p>
<blockquote><p>できればひとつのブログで、informationとblogをカテゴリーとして管理できるようにしたい</p></blockquote>
<p>と言われた場合、この方法は使えません。</p>
<p>WordPressの全機能を使うのでなければ、一部ディレクトリだけ管理下に置くことは、プラグインの追加と.htaccessの調整で可能です。</p>
<p><span id="more-1341"></span></p>
<h3>WordPressを下層ディレクトリに置く</h3>
<p>最上層のindex.htmlとぶつかってしまうので、WordPress本体はひとつ下層に設置します。<br />
この例では「wordpress」というディレクトリに設置したとして話を進めます。</p>
<p>※私はセキュリティ上の理由などで、ディレクトリ名＝CMS名にしないことが多いです</p>
<h3>「WP No Category Base」を追加する</h3>
<p>このカスタマイズをするには、プラグイン「WP No Category Base」が必要です。<br />
これはWordPressで出力されるカテゴリーアーカイブのURLから、最初に必ず付与される「category」を取り除きます。<br />
若干負荷が上がりますが、CMS的な構築をするには必須のプラグインです。</p>
<p>WordPress公式のプラグインディレクトリで入手できます。<br />
<a class="blank" href="http://wordpress.org/extend/plugins/wp-no-category-base/">http://wordpress.org/extend/plugins/wp-no-category-base/</a></p>
<p>特に設定は必要なく、アップロードして有効にするだけでOKです。</p>
<h3>一般設定／パーマリンク設定を変更する</h3>
<p>次に、WordPressの「設定→一般」と「設定→パーマリンク設定」を変更します。</p>
<h4>一般設定</h4>
<p>「ブログのアドレス」を「サイトルート」に設定します。<br />
最初の図の「www」のURLが「http://webbingstudio.com/」だった場合はそれを入力して更新します。<br />
このとき、サイトルートに.htaccessが書き出されます。<br />
自作の.htaccessを置いていると上書きされてしまうので、前もって避難させるか、書き込み禁止にしてください。</p>
<h4>パーマリンク設定</h4>
<p>「カスタム構造」にチェックを入れて、以下のように記入します。</p>
<pre><code>/%category%/%post_id%/</code></pre>
<p>ブログのURLが「http://webbingstudio.com/」だった場合、カテゴリーがhoge、IDが6の記事のURLは<br />
<em>http://webbingstudio.com/hoge/6/</em><br />
となります。</p>
<p>ここまで作業したら、<strong>サイトルートに書き出されている.htaccessを削除してしまいます</strong>。</p>
<h3>新たに定義した.httaccessを置く</h3>
<p>以下のように記述した、.htaccessをサイトルートに新しく設置します。<br />
（既にある場合は追記します）</p>
<pre><code># BEGIN WordPress

RewriteEngine On

RewriteBase /

RewriteRule ^(information|blog)/(.*) wordpress/index.php [L]
RewriteRule ^(date|tag|feed)/(.*) wordpress/index.php [L]
RewriteRule ^category/(information|blog)/(.*) wordpress/index.php [L]
RewriteRule ^(information|blog)/feed/(.*) wordpress/index.php [L]

# END WordPress</code></pre>
<h4>RewriteBase</h4>
<p>「/」はサーバールートからの相対パスです。<br />
もしもサイトルートが「test」だと「/test/」となります。</p>
<h4>RewriteRule</h4>
<p>条件を満たした場合に、WordPressのindex.phpを呼び出す、という指定です。</p>
<p>(information|blog)に、WordPressを有効にしたいディレクトリをパイプ区切りで指示します。<br />
「aaa」「bbb」「ccc」なら(aaa|bbb|ccc)と書きます。<br />
「aaa/ddd」「bbb/eee/fff」などの下層ディレクトリもWordPress配下となります。</p>
<p>これをサイトルートにアップロードすると、</p>
<ul>
<li>指定したカテゴリーと関連フィード</li>
<li>日別アーカイブ</li>
<li>タグサーチ</li>
</ul>
<p>のみWordPressが起動し、それ以外は静的コンテンツがあるサーバーと同じ挙動になります。<br />
（例えカテゴリーを作っていても表示されません）</p>
<p>アップロードしたら、<strong>.htaccessのパーミッションを444にしてください</strong>。<br />
書き込み可になっていると、WordPressの設定を変更したときに上書きされてしまいます。</p>
<p>あとは、各ページに移動して一部だけWordPressが起動するか確認します。</p>
<h3>注意点</h3>
<ol>
<li>一般的なサーバーで動作確認をしていますが、設置条件やサーバー状況によってはうまくいかないかもしれません。必ず検証してください。</li>
<li>WordPressの404ページは有効になりません。必要な場合は.htaccessにエラーページ指定を追記して自作してください。</li>
<li>キーワード検索はURLのルールが違う（クエリ式）なので、別のRewriteRuleが必要です。まだ実装したことがないので、ここでは割愛します。</li>
</ol>

<a href="http://twitter.com/?status=RT+%40%3A+WordPress%E3%82%92%E4%B8%80%E9%83%A8%E3%81%AE%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AE%E3%81%BF%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2F2ahtglh&amp;in_reply_to_status_id=13713572580" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2010/05/wp_directories.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPressの「Gravatar」をコメント名から表示する</title>
		<link>http://blog.webbingstudio.com/2009/10/gravatar_to_id.html</link>
		<comments>http://blog.webbingstudio.com/2009/10/gravatar_to_id.html#comments</comments>
		<pubDate>Sat, 17 Oct 2009 05:46:04 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[Customize]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=1150</guid>
		<description><![CDATA[

このブログにコメントすると、ランダムな幾何学模様が表示されます。
「Gravatar」というアバター登録サービスから自動生成をしてもらっています。

これはWordPressの内部機能で実装されていて、「設 [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.webbingstudio.com/uploads/2009/10/gravatar.jpg"><img src="http://blog.webbingstudio.com/uploads/2009/10/gravatar-200x196.jpg" alt="gravatar" title="gravatar" width="200" height="196" class="alignright size-medium wp-image-1151" /></a></p>

<p>このブログにコメントすると、ランダムな幾何学模様が表示されます。<br />
「<a href="http://ja.gravatar.com/" class="blank">Gravatar</a>」というアバター登録サービスから自動生成をしてもらっています。</p>

<p>これはWordPressの内部機能で実装されていて、「設定」メニューでアイコンのタイプを選ぶことができます。</p>

<img src="http://blog.webbingstudio.com/uploads/2009/10/gravatar2-480x242.jpg" alt="gravatar2" title="gravatar2" width="480" height="242" class="alignnone size-large wp-image-1152" />

<p>…が、この機能、全然役に立ちません。</p>

<p>まずGravatarに登録している人がほとんどいません。登録されていなかった場合「メールアドレス」を元にアイコンを生成しますが、スパムを警戒してコメント欄にメアドを書かない日本のブログでは、いつも同じアイコンしか出ません。</p>

<p>「名前がtwitterIDと合致したらtwitterアイコンを出す」というプラグインも試したことがあるのですが、だいたいの人はコメント名とtwitterIDは違っているようで、あまり効果はありません。</p>

<p>なので、私はこれを改良して<br />
「<strong>コメント欄に記入した名前</strong>」からGravatarを生成させています。<br />
流石にコメントごとに違う名前を名乗る人は少ないので、コメントをくれた人ごとに同じ幾何学模様が出てくれています。</p>

<p>やり方は追記以降で。コメント欄を少しでもカラフルにしたい人はお試しを。</p>

<span id="more-1150"></span>

<h3>修正の手順</h3>

<p>今使っているテーマファイルの「functions.php」に以下の関数を追加してください。<br />
なければ追加して最初の行に「<strong>&lt;?php</strong>」、最終行に「<strong>?&gt;</strong>」を書き込んでください。</p>

<textarea readonly="readonly" cols="60" rows="10">function gravatarToID($id="名無しさん", $size=64, $type="identicon") {
  $hashid = md5(md5($id));
  if ($size > 512) { $size = 512; }

  $img = "<img src=\"";
  $img .= "http://www.gravatar.com/avatar/";
  $img .= $hashid;
  $img .= "?d=";
  $img .= $type;
  $img .= "&amp;?s=";
  $img .= $size;
  $img .= "\" width=\"";
  $img .= $size;
  $img .= "\" height=\"";
  $img .= $size;
  $img .= "\" alt=\"";
  $img .= $id;
  $img .= "\" title=\"";
  $img .= $id;
  $img .= "\" class=\"comment-avatar\" />";
  echo $img;
}
</textarea>

<p>保存したら、テーマファイルの「コメント」を表示しているテンプレートの中から</p>

<textarea readonly="readonly" cols="60" rows="2">
<?php echo get_avatar( $comment, 32 ); ?></textarea>

<p>というようなコードを探して、以下のコードと差し替えてください。</p>

<textarea readonly="readonly" cols="60" rows="2"><?php gravatarToID($comment->comment_author, 32, 'identicon'); ?>
</textarea>

<h3>カスタマイズ</h3>

<p>関数「gravatarToID」には三つの引数があり、左から「コメント名」「縦横サイズ」「アイコン種別」となります。カンマで区切って指定します。</p>

<dl>

<dt>コメント名</dt>

<dd>WordPressの場合「$comment->comment_author」となります。</dd>

<dt>縦横サイズ</dt>

<dd>ピクセルサイズです。最大512ピクセルまで指定できるようです。</dd>

<dt>アイコン種別</dt>
<dd>
<ul>

<li>identicon ・・・ 幾何学模様</li>

<li>wavatar ・・・ ばいきんみたいなキャラ</li>

<li>monsterid ・・・ モンスター風</li>

</ul>
</dd>
</dl>

<p>引数を何も付けないと「名無しさん」の幾何学模様が64ピクセルで表示されます。</p>

<textarea readonly="readonly" cols="60" rows="2"><?php gravatarToID(); ?>
</textarea>

<p>下記のようにすると、ばいきんみたいなアイコンが縦横48ピクセルで表示されます。</p>

<textarea readonly="readonly" cols="60" rows="2"><?php gravatarToID($comment->comment_author, 48, 'wavatar'); ?>
</textarea>

<h3>関数の解説</h3>

<p>Gravatarは、以下のURLでランダムアイコンを書き出しています。</p>

<p>http://www.gravatar.com/avatar/[生成元の半角英数字]?d=[種別]&amp;?s=[幅]</p>

<p>なので、コメントの名前をmd5を複数通したランダムな英数字に暗号化して、上のURLに渡すようにしています。</p>

<p>Gravatarに怒られるかもしれませんが、PHPコードが書ければ、WordPress以外のブログにも実装できそうな気がします。<br />
もうちょっと他にもランダムパターンがあればいいんですけどね。</p>

<h3>補足</h3>

<p>書き忘れ。実際のGravatarはもっと濃い色で表示されます。<br />
私はCSSで透明度を調整することで、自分のブログに色合いを合わせています。</p>
<a href="http://twitter.com/?status=RT+%40%3A+WordPress%E3%81%AE%E3%80%8CGravatar%E3%80%8D%E3%82%92%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E5%90%8D%E3%81%8B%E3%82%89%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2Fyfgwdwr" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2009/10/gravatar_to_id.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPressの「新しいテーマの追加」機能を使うときは気を付けて</title>
		<link>http://blog.webbingstudio.com/2009/06/wordpress_theme_directory.html</link>
		<comments>http://blog.webbingstudio.com/2009/06/wordpress_theme_directory.html#comments</comments>
		<pubDate>Fri, 12 Jun 2009 05:40:15 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[FC2]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[セキュリティ]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=659</guid>
		<description><![CDATA[WordPress2.8は管理画面から公式のテーマディレクトリのテーマを直接利用できるようになりました。…が、私は手放しで喜べません。「問題のあるテーマをうっかり利用してしまう可能性が増える」ことでもあるからです。]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.webbingstudio.com/uploads/2009/06/wptheme-150x150.jpg" alt="wptheme" title="wptheme" width="150" height="150" class="alignleft size-medium wp-image-679" /></p>
<p><a href="http://wpdocs.sourceforge.jp/Version_2.8" target="_blank">Version 2.8 &#8211; WordPress Codex 日本語版（変更点和訳）</a></p>
<p>WordPressの最新バージョン、2.8がリリースされました。<br />
管理画面から簡単にアップグレードできますし、2.6→2.7のときのように、インターフェースが激変することもないので、アップグレードをお勧めします。</p>
<p>今回制作チームが特にアピールしているのが、管理画面から公式の「<a href="http://wordpress.org/extend/themes/" target="_blank">テーマディレクトリ</a>」のテーマを直接利用できるようになった点です。</p>
<p><a href="http://ja.wordpress.org/2009/06/11/wordpress-28/" target="_blank">テーマとウィジェットに彩りを与える2.8のリリース</a></p>
<p>WordPressのテーマファイルデザインの完成度の高さは、ソーシャルブックマークなどでも良く話題になりますが、それらが「テーマディレクトリ」に登録済みであれば、わざわざダウンロード・アップロードしなくても気軽に試せるようになったということです。</p>
<p>テーマを作るデザイナーの側も、「テーマディレクトリ」に登録しておけば、自分でダウンロード環境や設置方法を説明することなく、「<strong>○○というテーマ名で検索してね！</strong>」の一言で簡単に利用してもらえるようになります。</p>
<p>これでWordPressはレンタルブログ並み、いやそれ以上の自由度を手に入れたことになります。<br />
今後は個人ブログはますますWordPressにシフトしていくと思います。</p>
<p>…が、私は手放しで喜べません。<br />
「簡単に共有できる」ということは「危険なスクリプトが含まれていたり、問題のあるテーマをうっかり利用してしまう可能性が増える」ことでもあるからです。</p>
<p>私は、FC2ブログの共有テンプレートシステムで、3年くらいテンプレート配布をしていました。<br />
そのときにいただいたユーザーからのレスポンス、制作のノウハウなどは本格的な業務CMSに移行した今も役に立っています。<br />
でも、その頃から<br />
「InternetExplorerでしかまともに閲覧できないテンプレート」<br />
「見た目はきれいだけど、フルテーブルレイアウトでパフォーマンスが低いテンプレート」<br />
「勝手に広告が表示されるテンプレート」<br />
「こっそりとスクリプトが仕込まれた危険なテンプレート」<br />
なども一部存在していました。<br />
一応、FC2側でもチェックしてからリリースするのですが、何しろ数万単位なので限界があります。<br />
Web制作の知識が低い、利用する側ほどそのリスクを負う構図になりました。</p>
<p>レンタルブログの場合はPHPが書けませんから、せいぜいインラインフレームやJavaScriptをヘッダ・フッタに埋め込む程度です。<br />
しかしWordPressは、PHP関数を直接書き込むことでページを出力する仕様になっています（Smartyなどのテンプレートエンジンは介していません）。<br />
利用者のサーバーのPHP設定が緩ければ、技術のある人間にはあんなことやこんなこともやりたい放題なのです。</p>
<p>実際、フリーのWordPressテーマを改ざん・再配布していたサイトが問題になったこともあります。</p>
<p><a href="http://www.viper007bond.com/2008/09/11/be-careful-with-where-you-get-free-wordpress-themes-from/" target="_blank">http://www.viper007bond.com/2008/09/11/be-careful-with-where-you-get-free-wordpress-themes-from/(English)</a></p>
<p>また、テーマファイル制作者に悪意はなくても、セキュリティホールが存在することもあります。<br />
（下記のサイトは簡単なチェック方法のひとつがアップされてます。参考にしてください）</p>
<p><a href="http://bgs-works.com/blog/?p=62" target="_blank">wordpress　配布されているテーマでXSSの危険性・・・ | NIPPON MODE　BGS-WORKS</a></p>
<p>そんなわけで、安全にテーマファイルを選ぶなら、リリースされてから一定の期間が経過しているか（1年以上経っているとバージョン違いによる機能不備も考えられますが…）、これまで通りソーシャルブックマーク等で評判の良いテーマを探し、それの名前でテーマディクレクトリを検索するのが確実だろうとは思います。</p>
<p>少なくとも、<strong>tar.gzとかの圧縮ファイルが入ってる</strong>のはやめたといた方がいいんじゃないかとおもいます…</p>

<a href="http://twitter.com/?status=RT+%40%3A+WordPress%E3%81%AE%E3%80%8C%E6%96%B0%E3%81%97%E3%81%84%E3%83%86%E3%83%BC%E3%83%9E%E3%81%AE%E8%BF%BD%E5%8A%A0%E3%80%8D%E6%A9%9F%E8%83%BD%E3%82%92%E4%BD%BF%E3%81%86%E3%81%A8%E3%81%8D%E3%81%AF%E6%B0%97%E3%82%92%E4%BB%98%E3%81%91%E3%81%A6+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2Fn3szsu" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2009/06/wordpress_theme_directory.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MovableType・WordPressでカテゴリーの親子関係を判定する</title>
		<link>http://blog.webbingstudio.com/2009/04/%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc%e3%81%ae%e8%a6%aa%e5%ad%90%e9%96%a2%e4%bf%82%e5%88%a4%e5%ae%9a.html</link>
		<comments>http://blog.webbingstudio.com/2009/04/%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc%e3%81%ae%e8%a6%aa%e5%ad%90%e9%96%a2%e4%bf%82%e5%88%a4%e5%ae%9a.html#comments</comments>
		<pubDate>Sat, 11 Apr 2009 07:08:08 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[Customize]]></category>
		<category><![CDATA[MovableType]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=515</guid>
		<description><![CDATA[

先日の記事で、階層カテゴリーの親子関係の判定のために「最上層のIDを取得する方法」について書いたわけですが。
めげずに調べていたところ、こちらの記事でもっと簡潔な方法がが紹介されていました。

WebTec [...]]]></description>
			<content:encoded><![CDATA[<img src="http://blog.webbingstudio.com/uploads/2009/04/oyako.gif" alt="oyako" title="oyako" width="480" height="297" class="alignnone size-full wp-image-516" />

<p><a href="http://blog.webbingstudio.com/2009/04/wordpress%E3%81%A7%E6%9C%80%E4%B8%8A%E5%B1%A4%E3%81%AE%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%83%BC%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8Btips.html" title="WordPressで最上層のカテゴリーを取得するTips">先日の記事</a>で、階層カテゴリーの親子関係の判定のために「最上層のIDを取得する方法」について書いたわけですが。<br />
めげずに調べていたところ、こちらの記事でもっと簡潔な方法がが紹介されていました。</p>

<p><a href="http://tenderfeel.xsrv.jp/wordpress/reference/207/" target="_blank">WebTecNote - [WP]Category, Tag and Taxonomy Functions</a></p>

<p>ついでに、MovableTypeの場合も併せてご紹介します。<br />
MovableTypeと比較するため、今回はWordPressの方は関数化していません。</p>

<span id="more-515"></span>

<h3>WordPressの場合</h3>

<textarea cols="60" rows="12" readonly="readonly"><?php
  $catArr = get_the_category($post->ID);
  $flg = false;
  foreach($catArr as $var) {
    $cat = $var->cat_ID;
    if(cat_is_ancestor_of([親カテゴリーのID], (int) $cat)) $flg = true;
  }
  if($flg) echo "<span style=\"color: green;\">この記事は[親カテゴリー名]に含まれています</span>";
  else echo "<span style=\"color: red;\">この記事は[親カテゴリー名]に含まれていません</span>";
?></textarea>

<p>親子関係があれば変数$flgにtrueが入ります。[親カテゴリーのID]、[親カテゴリー名]に任意の値を入れて使ってください。</p>

<blockquote><p><a href="http://codex.wordpress.org/Function_Reference/cat_is_ancestor_of">cat_is_ancestor_of($cat1, $cat2)</a></p>
<p>$cat1で指定したカテゴリが$cat2の親である場合にtrueを返す。（どれだけ下の階層でもヒットすればtrue）<br />
引数はカテゴリーＩＤで、数値でないと常にfalseになる。('1','4')ではなく(1,4)で指定。</p>
<p><a href="http://tenderfeel.xsrv.jp/wordpress/reference/207/" target="_blank">WebTecNote - [WP]Category, Tag and Taxonomy Functions</a></p></blockquote>

<p>親子の条件判定がコア関数にあったとは…<br />
<strong>cat_is_ancestor_of()</strong>は本家のCodexには掲載されていますが、日本で言及している人はほとんどいません。英語を読めるようにならなければと痛感しました…</p>

<p>IDを関数に渡す前に(int)と型宣言をしておかなければならないのと、<br />
<strong>現在のカテゴリーが親そのものだった場合はfalseを返す</strong>点に注意が必要です。<br />
親そのものも判定対象にしたい場合は、別途条件を増やす必要があります。</p>


<h3>MovableTypeの場合</h3>

<p>独自タグ<strong>&lt;MTIfIsDescendant&gt;</strong>を使用します。</p>

<textarea cols="60" rows="8" readonly="readonly"><mt:IfIsDescendant parent="[親カテゴリー名]">
<span style="color: green;">この記事は[親カテゴリー名]に含まれています</span>
<mt:Else>
<span style="color: red;">この記事は[親カテゴリー名]に含まれていません</span>
</mt:Else>
</mt:IfIsDescendant></textarea>

<blockquote><p>現在のカテゴリが、parent モディファイアで指定したカテゴリのサブカテゴリにあたるか判定する条件タグです。囲まれた内容は条件にあてはまったときにのみ処理されます。</p>
<p><a href="http://www.movabletype.jp/documentation/appendices/tags/ifisdescendant.html" target="_blank">MTIfIsDescendant | テンプレートタグリファレンス</a></p></blockquote>

<p>「現在のカテゴリが、指定したカテゴリをサブカテゴリとして含んでいるか」という、逆の機能を持った<a href="http://www.movabletype.jp/documentation/appendices/tags/ifisancestor.html"  target="_blank">&lt;MTIfIsAncestor&gt;</a>も用意されています。<br />
また、<strong>現在のカテゴリーが親そのものであってもtrueを返す</strong>点がWordPressの関数と異なっています。</p>

<p>MovableTypeの方が直感的に見えますが、parentモディファイアを一意の「ID」ではなく、「表示名」で指定しなければならない点が最大の欠点です。<br />
「カテゴリー名は変えないでくださいね」と前置きするのを忘れて、<br />
「コンテンツを見直したら表示が変になっちゃったんですけど…」<br />
と、半年以上経ってからクライアントさんから問い合わせが来たこともあります（笑）</p>

<hr />

<p>カテゴリー・フォルダ階層による条件分岐は難しいですが、使いこなせば精密なレイアウトのサイトを構築することができます。<br />
個人のブログですと、カテゴリーごとにアフィリエイトの広告を変えるなんてのも実用的ですね。</p>
<a href="http://twitter.com/?status=RT+%40%3A+MovableType%E3%83%BBWordPress%E3%81%A7%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%83%BC%E3%81%AE%E8%A6%AA%E5%AD%90%E9%96%A2%E4%BF%82%E3%82%92%E5%88%A4%E5%AE%9A%E3%81%99%E3%82%8B+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2Fcw9a6k" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2009/04/%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc%e3%81%ae%e8%a6%aa%e5%ad%90%e9%96%a2%e4%bf%82%e5%88%a4%e5%ae%9a.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPressで最上層のカテゴリーを取得するTips</title>
		<link>http://blog.webbingstudio.com/2009/04/wordpress%e3%81%a7%e6%9c%80%e4%b8%8a%e5%b1%a4%e3%81%ae%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8btips.html</link>
		<comments>http://blog.webbingstudio.com/2009/04/wordpress%e3%81%a7%e6%9c%80%e4%b8%8a%e5%b1%a4%e3%81%ae%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8btips.html#comments</comments>
		<pubDate>Wed, 08 Apr 2009 19:22:39 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[Customize]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=494</guid>
		<description><![CDATA[

WordPressで、上の画像のようなトップイメージのあるブログを構築して、
カテゴリーが


Photo&#160;&#187;&#160;Night
Photo&#160;&#187;&#038;nbsp [...]]]></description>
			<content:encoded><![CDATA[<img src="http://blog.webbingstudio.com/uploads/2009/04/topcategory.jpg" alt="topcategory" title="topcategory" width="480" height="274" class="alignnone size-full wp-image-495" />

<p>WordPressで、上の画像のようなトップイメージのあるブログを構築して、<br />
カテゴリーが</p>

<ul>
<li>Photo&nbsp;&raquo;&nbsp;Night</li>
<li>Photo&nbsp;&raquo;&nbsp;Dog</li>
<li>Photo&nbsp;&raquo;&nbsp;Night&nbsp;&raquo;&nbsp;Star</li>
</ul>

<p>のいずれの場合でも「Photo」のイメージを出したい…という場合<br />
「現在のカテゴリーを含む、いちばん上の階層のカテゴリー」の情報を取得する必要があります。</p>

<p>これにはいろいろな方法がありますが、<br />
「表示名を取得する方法」と「IDを取得する方法」の二種類を紹介します。</p>

<div class="box1"><p>2009.04.11追記<br />
親子判定だけが目的であれば、もっと簡単な方法がありました。<br />
&raquo;<a href="http://blog.webbingstudio.com/2009/04/%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc%e3%81%ae%e8%a6%aa%e5%ad%90%e9%96%a2%e4%bf%82%e5%88%a4%e5%ae%9a.html">MovableType・WordPressでカテゴリーの親子関係を判定する</a></p></div>

<span id="more-494"></span>

<h3>1. 各エントリーのIDを取得する</h3>

<p>どちらの方法を使うにしても、まず<br />
「現在のエントリーが属しているカテゴリーのID」を調べることになります。</p>

<p>カテゴリーアーカイブの場合は、変数「$cat」に既に値が入っていますが、個別アーカイブなどでは以下のようにPHPスクリプトを書きます。</p>

<textarea cols="60" rows="3" readonly="readonly"><?php
  $catArr = get_the_category($post->ID);
  $cat = $catArr[0]->cat_ID;
?></textarea>

<h4>説明</h4>

<p>記事のID（$post->ID）を引数として、<strong>get_the_category()</strong>でカテゴリー情報を取得します。<br />
<strong>カテゴリーが複数指定されている可能性がある</strong>ので、関数の返り値は配列になっています。そこで、$catArr[0]として、最初のカテゴリーだけを取ります（ひとつしか指定していない場合でも、0番目には絶対入っているはずです）。<br />
MovableTypeと違い、残念ながら主カテゴリーを明示・取得することはできません。</p>

<hr />

<p>$catにカテゴリーIDを入れた後は、以下のどちらかの方法を使います。</p>

<h3>2-a. 表示名を取得する方法</h3>

<p>以下の関数をテーマファイル内に追加します。</p>

<textarea cols="60" rows="6" readonly="readonly">//get topcategoryID
function get_category_top($ID) {
  $p = get_category_parents($ID, false, ',');
  $pArr = explode(',', $p);
  return $pArr[0];
}</textarea>

<p>こういったユーザー関数は記事表示部分ではなく、テーマファイル内の「functions.php」に追加してください。あとで何度でも呼び出すことができます。</p>

<p>これで、記事表示部分に</p>

<textarea cols="60" rows="1" readonly="readonly"><?php $parent = attribute_escape(get_category_top($cat)); ?></textarea>

<p>と書けば、$parentに最上層カテゴリーの「表示名」が入ります。<br />
echoで表示するなり、条件分岐に使用するなどします。</p>

<h4>説明</h4>

<p><strong>get_category_parents()</strong>は、指定した区切り文字で最上層からのカテゴリー一覧を取得する関数です。<br />
主にパンくずリストなどで使用されるものですが、二番目の引数をfalseにするとリンクなしで表示名だけ取得できます。</p>

<p>カンマ区切りで取得したら、PHPコアの<strong>explode()</strong>で配列に変換し、最上層になっているはずの、最初の値を返します。</p>

<p>表示部分に書かれている、<strong>attribute_escape()</strong>とは、&lt;やら&gt;やらのパースエラーを引き起こすタグを除去するWordPressの汎用関数です。<br />
条件分岐のキーにする場合は必要ないかもしれませんが、echoで出力する場合、テーマを配布する場合は念のため入れておいた方がいいと思います。</p>

<p>参考：<a href="http://www.yuriko.net/arc/2009/02/14/html-escape/">Yuriko.Net &raquo; HTML エスケープなしの出力は怖い</a></p>


<h3>2-b. IDを取得する方法</h3>

<p>以下の関数をテーマファイル内に追加します。</p>

<textarea cols="60" rows="12" readonly="readonly">//get parentcategoryID
function get_category_parent($ID) {
  $catObj = get_category($ID);
  $parentID = $catObj->category_parent;
  return $parentID;
}

//get topcategoryID
function get_category_top($ID) {
  $i = 0;
  $parent = get_category_parent($ID);

  while($parent) {
    ++$i;
    $parentID = get_category_parent($parent);
    if($parentID){
      $parent = $parentID;
    } else {
      return $parent;
      break;
    }
    if($i > 5){
      break;
    }
  }
}</textarea>

<p>こういったユーザー関数は記事表示部分ではなく、テーマファイル「functions.php」に追加してください。あとで何度でも呼び出すことができます。</p>

<p>これで、記事表示部分に</p>

<textarea cols="60" rows="1" readonly="readonly"><?php $parent = get_category_top($cat); ?></textarea>

<p>と書けば、$parentに最上層カテゴリーの「ID」が入ります。<br />
echoで表示するなり、条件分岐に使用するなどします。<br />
IDは必ず数値が返るため直感的ではないですが、安全性を重視するならこちらの方が良いかもしれません。</p>

<h4>説明</h4>

<p>ひとつ上のカテゴリーIDを取得する<strong>get_category_parent()</strong>を、<strong>get_category_top()</strong>内で繰り返すことで、いちばん上のIDを取り出しています。</p>

<p>上のカテゴリーが見つからなくなる（0が返ります）か、<br />
5階層上まで処理を繰り返します。<br />
5階層もあるカテゴリーなんかありえないのですが、データベースやサーバーの不具合で無限ループが起こらないように念のため保険をかけています。</p>

<hr />

<p>階層カテゴリー情報は頻繁に利用されるのに、あまり関数が用意されていません :(<br />
海外のCodexには掲載されているのかもしれませんが、WordPressの内部を直接見てみてもそれらしいものはないようです。<br />
いずれにしてもコア関数は自由度を上げるために引数が多くなっている傾向があるので、IDを取得するだけなら、自分で関数を書いてしまった方が処理が早そうです。</p>

<p>私はまだプログラミングに詳しくないので、<br />
もっと良い方法があれば教えてください＞＜</p>
<a href="http://twitter.com/?status=RT+%40%3A+WordPress%E3%81%A7%E6%9C%80%E4%B8%8A%E5%B1%A4%E3%81%AE%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%83%BC%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8BTips+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2Fdzw6bp" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2009/04/wordpress%e3%81%a7%e6%9c%80%e4%b8%8a%e5%b1%a4%e3%81%ae%e3%82%ab%e3%83%86%e3%82%b4%e3%83%aa%e3%83%bc%e3%82%92%e5%8f%96%e5%be%97%e3%81%99%e3%82%8btips.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress for iPhoneを試してみる</title>
		<link>http://blog.webbingstudio.com/2009/03/wordpress-for-iphone%e3%82%92%e8%a9%a6%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b.html</link>
		<comments>http://blog.webbingstudio.com/2009/03/wordpress-for-iphone%e3%82%92%e8%a9%a6%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b.html#comments</comments>
		<pubDate>Sun, 29 Mar 2009 18:08:55 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[Customize]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/2009/03/wordpress-for-iphone%e3%82%92%e8%a9%a6%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b.html</guid>
		<description><![CDATA[WordPressにiPhoneから投稿可能になるアプリ「WordPress for iPhone」を試しています。
・エントリーとページの管理
・カテゴリー指定と追加
・タグ指定
・画像アップロード
・コメント管理
な [...]]]></description>
			<content:encoded><![CDATA[<p>WordPressにiPhoneから投稿可能になるアプリ「<a href="http://iphone.wordpress.org/" target="_blank">WordPress for iPhone</a>」を試しています。</p>
<p>・エントリーとページの管理<br />
・カテゴリー指定と追加<br />
・タグ指定<br />
・画像アップロード<br />
・コメント管理</p>
<p>などをサポートしていて、iPhoneのインターフェースを充分に生かした仕様になっています。<br />
アプリなので、「設定」→「投稿設定」で「XML-RPCを有効」にするだけですぐ使えます。</p>
<p>iPhone自体に実装されていないため、ブラウザと連動したりコピペしたりしてリンクを貼ることはできません。<br />
(現実的ではありませんが、全て手入力なら貼れます)</p>
<p>また、サーバーによってHTMLタグが化けたり、写真が逆さまになったりするようです。</p>
<p>私はiPhoneで撮った写真をフルサイズのままアップしようとしたら固まってしまい、再起動を余儀なくされました…(^_^;<br />
写真はスクリーンショットを撮るようにしなくちゃだめですね。</p>
<p>あくまで、モブログに毛の生えたものと割り切った方が良いようです。</p>
<p><a href="http://blog.webbingstudio.com/uploads/2009/03/p-1600-1200-26b8ecfb-4c69-4aac-a00d-7a46dd6b293d.jpeg"><img class="alignnone size-full wp-image-364" src="http://blog.webbingstudio.com/uploads/2009/03/p-1600-1200-26b8ecfb-4c69-4aac-a00d-7a46dd6b293d.jpeg" alt="" width="225" height="300" /></a></p>
<p><a href="http://blog.webbingstudio.com/uploads/2009/03/p-480-320-4b762101-64a7-4301-9932-13a226bb1502.jpeg"><img class="alignnone size-full wp-image-364" src="http://blog.webbingstudio.com/uploads/2009/03/p-480-320-4b762101-64a7-4301-9932-13a226bb1502.jpeg" alt="" width="200" height="300" /></a></p>

<a href="http://twitter.com/?status=RT+%40%3A+WordPress+for+iPhone%E3%82%92%E8%A9%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2Fda6la2" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2009/03/wordpress-for-iphone%e3%82%92%e8%a9%a6%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wp_post_jp:インポートで使えるWordPress用ダミー記事セット</title>
		<link>http://blog.webbingstudio.com/2009/03/wp_post_jp.html</link>
		<comments>http://blog.webbingstudio.com/2009/03/wp_post_jp.html#comments</comments>
		<pubDate>Mon, 09 Mar 2009 11:16:34 +0000</pubDate>
		<dc:creator>WebbingStudio</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[おみやげ]]></category>

		<guid isPermaLink="false">http://blog.webbingstudio.com/?p=418</guid>
		<description><![CDATA[ブログのテーマを作るときには、実際の表示を確認するための「ダミー記事」を入れ込む必要があります。
海外では「Sample WordPress Content」というインポートで使えるダミー記事セットも配布されていますが、 [...]]]></description>
			<content:encoded><![CDATA[<p>ブログのテーマを作るときには、実際の表示を確認するための「ダミー記事」を入れ込む必要があります。</p>
<p>海外では「<a href="http://wpcandy.com/articles/easier-theme-development-with-the-sample-post-collection.html" target="_blank">Sample WordPress Content</a>」というインポートで使えるダミー記事セットも配布されていますが、英語圏用なので日本ではあまり役に立ちません。<br />
ひらがな・カタカナ・漢字・英数・記号を同時に使用し、絵文字まで使う日本人には、専用のダミー記事が必要なのです。</p>
<p>これまでのブログカスタマイズの経験を元に、いろいろなパターンの記事を投稿した<strong>WordPress用インポートファイル</strong>を作成したので配布します。<br />
趣味の方も、ビジネスの方も、ご自由にご利用ください。<br />
MovableType版も作るかもしれません。</p>
<p><strong><a href="http://webbingstudio.com/souvenir/post_jp/wp_post_jp.zip">ダウンロードはこちら</a></strong></p>
<p><strong>更新履歴</strong><br />
2009.3.11　文章を一部直しました。プレスリリース風エントリーを追加しました。</p>
<p>スクショと解説は追記以下で。<span id="more-418"></span></p>
<h3>追加されるデータ</h3>
<p>wp_post_jpをインポートすると、下記のようなテストデータが追加されます。</p>
<ul>
<li>プレスリリース風エントリー</li>
<li>ブログ風日本語エントリー（男性｜女性）</li>
<li>blockquote、table、ul、olを含めたエントリー</li>
<li>h3~h5を使用したエントリー<br />（ブログ利用を想定しています。CMSの場合はマークアップを変えてください）</li>
<li>コメントとトラックバックを含むエントリー</li>
<li>固定レイアウト枠をはみ出すようなエントリー</li>
<li>三段までの階層カテゴリー</li>
<li>2008年10月～2009年3月までのアーカイブ<br />（時間ランダム、全曜日投稿しています）</li>
<li>階層を持ったページ</li>
<li>タグ</li>
</ul>
<h3>スクリーンショット</h3>
<p><a href="http://blog.webbingstudio.com/uploads/2009/03/postjp01.jpg"><img src="http://blog.webbingstudio.com/uploads/2009/03/postjp01-150x123.jpg" alt="postjp01" title="postjp01" width="150" height="123" class="alignleft size-medium wp-image-436" /></a></p>
<p><a href="http://blog.webbingstudio.com/uploads/2009/03/postjp02.jpg"><img src="http://blog.webbingstudio.com/uploads/2009/03/postjp02-150x123.jpg" alt="postjp02" title="postjp02" width="150" height="123" class="alignleft size-medium wp-image-420" /></a></p>
<p><a href="http://blog.webbingstudio.com/uploads/2009/03/postjp03.jpg"><img src="http://blog.webbingstudio.com/uploads/2009/03/postjp03-150x123.jpg" alt="postjp03" title="postjp03" width="150" height="123" class="alignleft size-medium wp-image-437" /></a></p>
<p><a href="http://blog.webbingstudio.com/uploads/2009/03/postjp04.jpg"><img src="http://blog.webbingstudio.com/uploads/2009/03/postjp04-150x123.jpg" alt="postjp04" title="postjp04" width="150" height="123" class="alignleft size-medium wp-image-422" /></a></p>
<p><a href="http://blog.webbingstudio.com/uploads/2009/03/postjp05.jpg"><img src="http://blog.webbingstudio.com/uploads/2009/03/postjp05-150x123.jpg" alt="postjp05" title="postjp05" width="150" height="123" class="alignleft size-medium wp-image-423" /></a></p>
<p><a href="http://blog.webbingstudio.com/uploads/2009/03/postjp06.jpg"><img src="http://blog.webbingstudio.com/uploads/2009/03/postjp06-150x123.jpg" alt="postjp06" title="postjp06" width="150" height="123" class="alignleft size-medium wp-image-424" /></a></p>
<p><a href="http://blog.webbingstudio.com/uploads/2009/03/postjp07.jpg"><img src="http://blog.webbingstudio.com/uploads/2009/03/postjp07-150x123.jpg" alt="postjp07" title="postjp07" width="150" height="123" class="alignleft size-medium wp-image-438" /></a></p>
<p><a href="http://blog.webbingstudio.com/uploads/2009/03/postjp08.jpg"><img src="http://blog.webbingstudio.com/uploads/2009/03/postjp08-150x123.jpg" alt="postjp08" title="postjp08" width="150" height="123" class="alignleft size-medium wp-image-439" /></a></p>
<p><a href="http://blog.webbingstudio.com/uploads/2009/03/postjp09.jpg"><img src="http://blog.webbingstudio.com/uploads/2009/03/postjp09-150x123.jpg" alt="postjp09" title="postjp09" width="150" height="123" class="alignleft size-medium wp-image-427" /></a></p>
<div style="clear: both;"></div>
<h3>注意事項</h3>
<p>WordPress2.71からエクスポートしています。最新バージョンでのインポートを推薦します。</p>
<p>既に記事を書いている状態のブログにインポートすると、その記事を残した状態でダミー記事が追加されます。<br />
リンクのデータも入っていますが、これはインポートされません！残念無念＞＜</p>
<p>wp_post_jp内のテスト記事には画像が含まれるエントリーもありますが、imgタグ部分は著作権等の問題があるため、削除しています。<br />
エントリー本文に、<strong>（画像）</strong>などと書かれていますので、そこに該当する画像をアップロードしてください。</p>
<p>ブログ記事の内容、およびXMLデータ中にある、WebbingStudioのWordPressのURLはでたらめです。</p>
<p>当方でもインポートテストを行っていますが、記事を追加したことにより発生する不具合、データの損害等は関知いたしません。新しいブログでない場合は、必ずバックアップを取ってください。</p>
<h3>謝辞</h3>
<p>テスト記事作成にあたり、下記サイトを使用させていただきました。</p>
<ul>
<li><a href="http://lipsum.sugutsukaeru.jp/" target="_blank">すぐ使えるダミーテキスト</a></li>
<li><a href="http://www.aozora.gr.jp/cards/000081/card470.html" target="_blank">青空文庫「セロ弾きのゴーシュ」</a></li>
<li><a href="http://ja.wikipedia.org/wiki/WordPress" target="_blank">Wikipedia「WordPress」</a></li>
</ul>

<a href="http://twitter.com/?status=RT+%40%3A+wp_post_jp%3A%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8BWordPress%E7%94%A8%E3%83%80%E3%83%9F%E3%83%BC%E8%A8%98%E4%BA%8B%E3%82%BB%E3%83%83%E3%83%88+-+%E3%82%A6%E3%82%A7%E3%83%93%E3%83%B3%E3%83%96%E3%83%AD%E3%82%B0+%3E%3Ehttp%3A%2F%2Ftinyurl.com%2Fa68yfa" class="tweet-this" ><br /><img src="http://blog.webbingstudio.com/admin/wp-content/plugins/simple-tweet/img/tweet.gif" alt="Twitter" />Twitterで記事を紹介して下さい（-人-）</a>]]></content:encoded>
			<wfw:commentRss>http://blog.webbingstudio.com/2009/03/wp_post_jp.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
