<?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>QUOIT Blog &#187; WordPress</title>
	<atom:link href="http://ken.quoit.jp/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://ken.quoit.jp</link>
	<description>Programming, OpenSource, HTML/CSS etc...</description>
	<lastBuildDate>Sat, 04 Feb 2012 17:18:36 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>WordPressの限界点</title>
		<link>http://ken.quoit.jp/2012/01/25/wordpress%e3%81%ae%e9%99%90%e7%95%8c%e7%82%b9/</link>
		<comments>http://ken.quoit.jp/2012/01/25/wordpress%e3%81%ae%e9%99%90%e7%95%8c%e7%82%b9/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 00:29:29 +0000</pubDate>
		<dc:creator>yakumo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://ken.quoit.jp/?p=1104</guid>
		<description><![CDATA[このブログもWordPressを利用して作られています。 最近ではブログエンジンのみならず、CMSとして利用される例も多くなってきました。 私自身、案件でもよく利用しているわけですが、近頃ではその限界点を感じるようになり、案件では採用しないことが多くなってきました。 企業のWeb担当者や、システムを知らないがWordPressなら構築が出来ると謳う方には、是非一度考えてもらいたいと思い、ここに記します。 ※この文章は私自身の個人的な意見であり、WordPressで構築されたサイトを批判、中傷するものではありません。 WordPressに問題を感じる理由はいくつかあります。 もちろんその問題をある程度解消する方法も存在することは承知の上で、挙げてみます。 １．DBの問題 WordPressを案件で採用しない一番の理由がDBの問題です。 CMSエンジンとしても使われるようになったためか、汎用性を意識した作りをしており、DB構造が非常にややこしいです。 その上、HTML吐き出し型では無く、アクセスの度にDBにクエリを投げる形を取っています。 これによりサーバへの負荷が増え、多量のアクセスを捌くことが困難になります。 ApacheやMysqlのチューニングである程度は負荷を下げることが出来ますが、根本的な解決にはなりません。 ２．プラグインの問題 ここまでWordPressが広く普及した理由は、プラグインの存在無しには語れないでしょう。 「手軽に導入出来るプラグインによるカスタマイズ」こそがWordPressの魅力と言っても過言では無いと思います。 しかし、それこそが致命的な欠点を作り出しているとも言えます。 まず、その手軽さ。 ほとんどのプラグインがボタン一つで簡単に導入できるわけですが、あなたはその中身の動作を知っていますか？ 中でどういう処理が行われていて、どのような脆弱性を持っているのか。 先日、導入したが有効化していないプラグインの脆弱性を突かれて、サイトの中身を改ざんされたという記事を目にしました。 何故こんな事件が発生してしまったのか。 ここからは推測の域を出ませんが、可能性のお話です。 WordPressの管理画面やプラグインのURLは設定を変更しない限り、デフォルトのものが使用されます。 つまり、そのサイトがWordPressを使っていて、かつ、そのプラグインをインストールしていれば、有効化しているかどうかに関わらず、そのプラグインの脆弱性を突くことが可能になってくるわけです。 こうした被害も、個人のブログであれば、たいして問題無いかもしれませんが、企業のホームページに導入していた場合、どうなるでしょうか？ 誰が責任をとってくれますか？ WordPressはオープンソースのプログラムですから、作った人が何かを担保してくれるわけではありません。 導入を決定した人が、あくまで責任を負う必要が出てくるわけです。 そのリスクを理解した上で導入を決定しているかどうか。 WordPressの導入を決定した担当者は、そこまでの判断をした上で利用を決定しているのでしょうか。 ３．直接のカスタマイズの問題 WordPressはPHPで作られており、PHPの読み書きが出来ればある程度のカスタマイズが可能になっています。 テンプレートを作りたければ、最小限のPHPの知識と、WordPress独自関数の知識があれば良いのです。 しかし、中途半端な知識は脆弱性の温床です。 言うまでもありませんが、「知らなかった」なんて言い訳には出来ません。 また、WordPress本体の問題も多くあります。 歴史的な理由もあり、WordPress独自関数は整備状況が甘く、命名ルールや挙動すらも統一されていないという惨状です。 当然そこで出来上がるコードは、非常に可読性が低く、今後の再利用に適さないものになります。 あとから機能を追加したくとも、まずは解読から、という状況も珍しくありません。 しっかりしたドキュメントを作れば解決…たしかにそうですが、それってスクラッチ開発とどう違うんでしょうね？ WordPress自体は、オープンソースそのものの発展に大きく寄与した面もあり、高く評価しています。 しかし、だからといって盲目的にそれを信頼し、下駄を預けられるか、というとそれは別の問題です。 考えなくなることは楽ですが、そこに潜む危険について知らないことは、思わぬときに悲劇を生む地雷のような存在だと思います。]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>このブログもWordPressを利用して作られています。<br />
最近ではブログエンジンのみならず、CMSとして利用される例も多くなってきました。<br />
私自身、案件でもよく利用しているわけですが、近頃ではその限界点を感じるようになり、案件では採用しないことが多くなってきました。<br />
企業のWeb担当者や、システムを知らないがWordPressなら構築が出来ると謳う方には、是非一度考えてもらいたいと思い、ここに記します。</p>
<p>※この文章は私自身の個人的な意見であり、WordPressで構築されたサイトを批判、中傷するものではありません。</p>
<p><span id="more-1104"></span></p>
<p>WordPressに問題を感じる理由はいくつかあります。<br />
もちろんその問題をある程度解消する方法も存在することは承知の上で、挙げてみます。</p>
<h4>１．DBの問題</h4>
<p>WordPressを案件で採用しない一番の理由がDBの問題です。<br />
CMSエンジンとしても使われるようになったためか、汎用性を意識した作りをしており、DB構造が非常にややこしいです。</p>
<p>その上、HTML吐き出し型では無く、アクセスの度にDBにクエリを投げる形を取っています。<br />
これによりサーバへの負荷が増え、多量のアクセスを捌くことが困難になります。</p>
<p>ApacheやMysqlのチューニングである程度は負荷を下げることが出来ますが、根本的な解決にはなりません。</p>
<h4>２．プラグインの問題</h4>
<p>ここまでWordPressが広く普及した理由は、プラグインの存在無しには語れないでしょう。<br />
「手軽に導入出来るプラグインによるカスタマイズ」こそがWordPressの魅力と言っても過言では無いと思います。</p>
<p>しかし、それこそが致命的な欠点を作り出しているとも言えます。</p>
<p>まず、その手軽さ。<br />
ほとんどのプラグインがボタン一つで簡単に導入できるわけですが、<strong>あなたはその中身の動作を知っていますか？</strong><br />
中でどういう処理が行われていて、どのような脆弱性を持っているのか。</p>
<p>先日、<strong>導入したが有効化していないプラグインの脆弱性を突かれて</strong>、サイトの中身を改ざんされたという記事を目にしました。<br />
何故こんな事件が発生してしまったのか。</p>
<p>ここからは推測の域を出ませんが、可能性のお話です。<br />
WordPressの管理画面やプラグインのURLは設定を変更しない限り、デフォルトのものが使用されます。<br />
つまり、<strong>そのサイトがWordPressを使っていて、かつ、そのプラグインをインストールしていれば、</strong>有効化しているかどうかに関わらず、そのプラグインの脆弱性を突くことが可能になってくるわけです。</p>
<p>こうした被害も、個人のブログであれば、たいして問題無いかもしれませんが、企業のホームページに導入していた場合、どうなるでしょうか？<br />
誰が責任をとってくれますか？</p>
<p>WordPressはオープンソースのプログラムですから、作った人が何かを担保してくれるわけではありません。<br />
導入を決定した人が、あくまで責任を負う必要が出てくるわけです。</p>
<p>そのリスクを理解した上で導入を決定しているかどうか。</p>
<p>WordPressの導入を決定した担当者は、そこまでの判断をした上で利用を決定しているのでしょうか。</p>
<h4>３．直接のカスタマイズの問題</h4>
<p>WordPressはPHPで作られており、PHPの読み書きが出来ればある程度のカスタマイズが可能になっています。<br />
テンプレートを作りたければ、最小限のPHPの知識と、WordPress独自関数の知識があれば良いのです。</p>
<p>しかし、中途半端な知識は脆弱性の温床です。<br />
言うまでもありませんが、「知らなかった」なんて言い訳には出来ません。</p>
<p>また、WordPress本体の問題も多くあります。<br />
歴史的な理由もあり、WordPress独自関数は整備状況が甘く、命名ルールや挙動すらも統一されていないという惨状です。<br />
当然そこで出来上がるコードは、非常に可読性が低く、今後の再利用に適さないものになります。<br />
あとから機能を追加したくとも、まずは解読から、という状況も珍しくありません。<br />
しっかりしたドキュメントを作れば解決…たしかにそうですが、それってスクラッチ開発とどう違うんでしょうね？</p>
<hr />
<p>WordPress自体は、オープンソースそのものの発展に大きく寄与した面もあり、高く評価しています。<br />
しかし、だからといって盲目的にそれを信頼し、下駄を預けられるか、というとそれは別の問題です。</p>
<p>考えなくなることは楽ですが、そこに潜む危険について知らないことは、思わぬときに悲劇を生む地雷のような存在だと思います。</p>
<div class="shr-publisher-1104"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://ken.quoit.jp/2012/01/25/wordpress%e3%81%ae%e9%99%90%e7%95%8c%e7%82%b9/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>WordPressの記事とタグをSQL直接発行で取得する</title>
		<link>http://ken.quoit.jp/2011/02/15/wordpress%e3%81%ae%e8%a8%98%e4%ba%8b%e3%81%a8%e3%82%bf%e3%82%b0%e3%82%92sql%e7%9b%b4%e6%8e%a5%e7%99%ba%e8%a1%8c%e3%81%a7%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b/</link>
		<comments>http://ken.quoit.jp/2011/02/15/wordpress%e3%81%ae%e8%a8%98%e4%ba%8b%e3%81%a8%e3%82%bf%e3%82%b0%e3%82%92sql%e7%9b%b4%e6%8e%a5%e7%99%ba%e8%a1%8c%e3%81%a7%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 06:17:13 +0000</pubDate>
		<dc:creator>yakumo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://ken.quoit.jp/?p=766</guid>
		<description><![CDATA[いろんな方がやってることとは思いますが、一応参考までに。 特にタグの部分に関しては結構悩んだので自分用のメモとして。 前提として、WordPressのDB構造はざらっと見ておいてください。 データベース構造 &#8211; WordPress Codex 日本語版 これを踏まえて。 タグを取得するおまじないコード なんかよくわかんない人は、以下のコードで取得できますよ。 # wp-config.phpから下記をコピーする（wordpressのテンプレ内で書くなら必要ない） define('DB_NAME', 'databasename'); define('DB_USER', 'user'); define('DB_PASSWORD', 'password'); define('DB_HOST', 'localhost'); $list=get("SELECT P.* FROM wp_posts P WHERE P.post_status = 'publish' ORDER BY P.post_date DESC limit 10"); foreach($list as $k=>$v){ $list[$k]["tags"]=get( "select TS.name as tag from wp_term_taxonomy T " ."LEFT JOIN wp_terms TS ON TS.term_id = [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>いろんな方がやってることとは思いますが、一応参考までに。<br />
特にタグの部分に関しては結構悩んだので自分用のメモとして。</p>
<p><span id="more-766"></span></p>
<p>前提として、WordPressのDB構造はざらっと見ておいてください。</p>
<blockquote><p>
<a href="http://bit.ly/hUu1KH" target="_blank">データベース構造 &#8211; WordPress Codex 日本語版</a>
</p></blockquote>
<p>これを踏まえて。</p>
<h5>タグを取得するおまじないコード</h5>
<p>なんかよくわかんない人は、以下のコードで取得できますよ。</p>
<pre name="code" class="php">
# wp-config.phpから下記をコピーする（wordpressのテンプレ内で書くなら必要ない）
define('DB_NAME', 'databasename');
define('DB_USER', 'user');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');

$list=get("SELECT P.* FROM wp_posts P WHERE P.post_status = 'publish' ORDER BY P.post_date DESC limit 10");
foreach($list as $k=>$v){
	$list[$k]["tags"]=get(
		"select TS.name as tag from wp_term_taxonomy T "
		."LEFT JOIN wp_terms TS ON TS.term_id = T.term_id "
		."LEFT JOIN wp_term_relationships R ON T.term_taxonomy_id = R.term_taxonomy_id "
		."LEFT JOIN wp_posts P ON P.ID = R.object_id "
		.sprintf("where R.object_id=%d ",$v["ID"])
		."and T.taxonomy='post_tag' "
	);
}

function get($stmt){
	if (!mysql_connect(DB_HOST,DB_USER,DB_PASSWORD)) die("ERROR: HOST CONNECT FAILED");
	# CONNECT DB
	if (!(mysql_select_db(DB_NAME))) die("ERROR: DB CONNECT FAILED");
	if (!($data = mysql_query($stmt))) {
		echo mysql_error();
		return false;
	}
	$result = Array();
	while($tmp = @mysql_fetch_assoc($data)){
		array_push($result,$tmp);
	}
	if(!empty($result)){
		return $result;
	}else{
		return FALSE;
	}
}

#------------------------------
# ここから出力の処理
#------------------------------

echo "&#60table&#62;";
echo "&#60tr&#62;";
echo "&#60td&#62;タイトル&#60;/td&#62;";
echo "&#60td&#62;本文&#60;/td&#62;";
echo "&#60td&#62;公開時間&#60;/td&#62;";
echo "&#60td&#62;タグ&#60;/td&#62;";
echo "&#60/tr&#62;";
foreach($list as $k=>$v){
	echo "&#60tr&#62;";
	echo "&#60td&#62;".$v["post_title"]."&#60;/td&#62;";
	echo "&#60td&#62;".$v["post_content"]."&#60;/td&#62;";
	echo "&#60td&#62;".$v["post_date"]."&#60;/td&#62;";
	echo "&#60td&#62;";
		foreach($v["tags"] as $k2=>$v2){
			echo "&#60p&#62;".$v2["tag"]."&#60;/p&#62;";
		}
	echo "&#60/td&#62;";
	echo "&#60/tr&#62;";
}
echo "&#60;/table&#62;";
</pre>
<p>tableタグとか、適当に変えれば動くんじゃないかしら。<br />
分からなかったらコメントくださいませ。</p>
<h5>タグを取得するコード（分かる人向け）</h5>
<p>上で書いちゃいましたが、キモになるのは以下。</p>
<pre name="code" class="php">
$db=new DB();
$list=$db->exe(
	"SELECT P.* FROM wp_posts P "
	."WHERE P.post_status = 'publish' "
	."ORDER BY P.post_date DESC "
	."limit 10"
);
foreach($list as $k=>$v){
	$list[$k]["tags"]=$db->exe(
		"select TS.name as tag from wp_term_taxonomy T "
		."LEFT JOIN wp_terms TS ON TS.term_id = T.term_id "
		."LEFT JOIN wp_term_relationships R ON T.term_taxonomy_id = R.term_taxonomy_id "
		."LEFT JOIN wp_posts P ON P.ID = R.object_id "
		.sprintf("where R.object_id=%d ",$v["ID"])
		."and T.taxonomy='post_tag' "
	);
}
</pre>
<p>これで$listにデータが入ります。<br />
一レコードの中にタグを配列としてまとめたかったので、一回リストを作って、そのタグを取得する、という方法を取っています。<br />
（$db->exe();はSQL実行して結果を得る、っていう僕の個人的なメソッドです。気にしないでください。）</p>
<h5>解説</h5>
<p>このSQLを分解してみてみると、<br />
１）記事を取得する<br />
２）記事とタグを結びつけるテーブルから、紐づいたタグを取得する<br />
という大まかな流れになっています。</p>
<p>ここで気をつけなければいけないのが、WordPressのDB構造。</p>
<p>ここからは「データベースでリレーションを組む」ということが理解できる方向けです。</p>
<p>すごく分かりづらいので個人的には嫌いなのですが、WordPressは下図のようなリレーションになってます。<br />
<a href="http://ken.quoit.jp/wp-content/uploads/2011/02/dbimg.png" rel="lightbox[766]"><img src="http://ken.quoit.jp/wp-content/uploads/2011/02/dbimg-150x150.png" alt="" title="dbimg" width="150" height="150" class="alignnone size-thumbnail wp-image-782" /></a></p>
<p>黒字がテーブル名、青字がカラム名。（関係ないカラム名は省略してます）<br />
赤線で書いたのが対応するキーです。</p>
<p>wp_postsに（下書きなども含む）記事が格納され、タグやカテゴリはwp_termsに入ります。</p>
<p>注意しなければいけないのは、例えばある記事につけていたタグを削除したとき、削除されるのはwp_term_relationshipsの関連付けデータのみであり、wp_termsにはデータとしてそのまま残っているということです。<br />
リレーション構造からは当然なのですが、LEFT JOINの順序を間違えるだけでも正しいタグは取得できません。</p>
<p>以上です。</p>
<div class="shr-publisher-766"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://ken.quoit.jp/2011/02/15/wordpress%e3%81%ae%e8%a8%98%e4%ba%8b%e3%81%a8%e3%82%bf%e3%82%b0%e3%82%92sql%e7%9b%b4%e6%8e%a5%e7%99%ba%e8%a1%8c%e3%81%a7%e5%8f%96%e5%be%97%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPressで寄稿者が投稿したら任意のメールアドレスにメールする</title>
		<link>http://ken.quoit.jp/2011/01/27/wordpress%e3%81%a7%e5%af%84%e7%a8%bf%e8%80%85%e3%81%8c%e6%8a%95%e7%a8%bf%e3%81%97%e3%81%9f%e3%82%89%e4%bb%bb%e6%84%8f%e3%81%ae%e3%83%a1%e3%83%bc%e3%83%ab%e3%82%a2%e3%83%89%e3%83%ac%e3%82%b9%e3%81%ab/</link>
		<comments>http://ken.quoit.jp/2011/01/27/wordpress%e3%81%a7%e5%af%84%e7%a8%bf%e8%80%85%e3%81%8c%e6%8a%95%e7%a8%bf%e3%81%97%e3%81%9f%e3%82%89%e4%bb%bb%e6%84%8f%e3%81%ae%e3%83%a1%e3%83%bc%e3%83%ab%e3%82%a2%e3%83%89%e3%83%ac%e3%82%b9%e3%81%ab/#comments</comments>
		<pubDate>Thu, 27 Jan 2011 09:36:46 +0000</pubDate>
		<dc:creator>yakumo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://ken.quoit.jp/?p=662</guid>
		<description><![CDATA[そんな話題があったのでちょっと書いてみた。手順は以下。 いじるファイルは以下の２つ wp-includes/functions.php wp-includes/post.php まずはfunctions.phpに新しくfunctionを書く。 どこでもいいけど最後らへんがいいんじゃないかな。 function email_when_pending($post_ID) { $emailto = "yakumo@quoit.jp"; $emailfrom = "yakumo@quoit.jp"; if(!mb_send_mail( $emailto,#To "メール来たお(´ω`)",#Title "確認してね☆",#Body sprintf("From: %s\r\n",$emailfrom). sprintf("Reply-To: %s\r\n",$emailfrom). sprintf("X-Mailer: PHP/%s ", phpversion()), sprintf("-f %s ",$emailfrom)#From )){ return false; }else{ return $post_ID; } } return false;はいらないかもしれないけど、まぁ念のため。 $emailtoと$emailfromにそれぞれ任意のメールアドレスを入れる。 次にpost.php。2714行目くらいに、次の関数がある。 function wp_transition_post_status($new_status, $old_status, $post) { do_action('transition_post_status', $new_status, $old_status, $post); do_action("${old_status}_to_$new_status", $post); do_action("${new_status}_$post->post_type", $post->ID, [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>そんな話題があったのでちょっと書いてみた。手順は以下。</p>
<p><span id="more-662"></span></p>
<p>いじるファイルは以下の２つ</p>
<p>wp-includes/functions.php<br />
wp-includes/post.php</p>
<p>まずはfunctions.phpに新しくfunctionを書く。<br />
どこでもいいけど最後らへんがいいんじゃないかな。</p>
<pre name="code" class="php">
function email_when_pending($post_ID)  {
	$emailto = "yakumo@quoit.jp";
	$emailfrom = "yakumo@quoit.jp";
	if(!mb_send_mail(
		$emailto,#To
		"メール来たお(´ω`)",#Title
		"確認してね☆",#Body
		sprintf("From: %s\r\n",$emailfrom).
		sprintf("Reply-To: %s\r\n",$emailfrom).
		sprintf("X-Mailer: PHP/%s ", phpversion()),
		sprintf("-f %s ",$emailfrom)#From
	)){
		return false;
	}else{
		return $post_ID;
	}
}
</pre>
<p>return false;はいらないかもしれないけど、まぁ念のため。</p>
<p>$emailtoと$emailfromにそれぞれ任意のメールアドレスを入れる。</p>
<p>次にpost.php。2714行目くらいに、次の関数がある。</p>
<pre name="code" class="php">
function wp_transition_post_status($new_status, $old_status, $post) {
	do_action('transition_post_status', $new_status, $old_status, $post);
	do_action("${old_status}_to_$new_status", $post);
	do_action("${new_status}_$post->post_type", $post->ID, $post);

}
</pre>
<p>これにちょっと足す。</p>
<pre name="code" class="php">
function wp_transition_post_status($new_status, $old_status, $post) {
	do_action('transition_post_status', $new_status, $old_status, $post);
	do_action("${old_status}_to_$new_status", $post);
	do_action("${new_status}_$post->post_type", $post->ID, $post);

	add_action('draft_to_pending', 'email_when_pending');
	add_action('new_to_pending', 'email_when_pending');

}
</pre>
<p>これで、寄稿者が投稿してレビュー待ちになったらメールが来る。</p>
<p>一応僕の環境では動きました。</p>
<div class="shr-publisher-662"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://ken.quoit.jp/2011/01/27/wordpress%e3%81%a7%e5%af%84%e7%a8%bf%e8%80%85%e3%81%8c%e6%8a%95%e7%a8%bf%e3%81%97%e3%81%9f%e3%82%89%e4%bb%bb%e6%84%8f%e3%81%ae%e3%83%a1%e3%83%bc%e3%83%ab%e3%82%a2%e3%83%89%e3%83%ac%e3%82%b9%e3%81%ab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPressのテーマにSmartyを使って出力させてみた</title>
		<link>http://ken.quoit.jp/2010/12/21/wordpress%e3%81%ae%e3%83%86%e3%83%bc%e3%83%9e%e3%81%absmarty%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e5%87%ba%e5%8a%9b%e3%81%95%e3%81%9b%e3%81%a6%e3%81%bf%e3%81%9f/</link>
		<comments>http://ken.quoit.jp/2010/12/21/wordpress%e3%81%ae%e3%83%86%e3%83%bc%e3%83%9e%e3%81%absmarty%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e5%87%ba%e5%8a%9b%e3%81%95%e3%81%9b%e3%81%a6%e3%81%bf%e3%81%9f/#comments</comments>
		<pubDate>Tue, 21 Dec 2010 09:17:09 +0000</pubDate>
		<dc:creator>yakumo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Smarty]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPressテーマ]]></category>

		<guid isPermaLink="false">http://ken.quoit.jp/?p=558</guid>
		<description><![CDATA[WordPressはテンプレート機能を備えているので、テーマファイルを作ることで、簡単に自分のテーマが作れます。 作れますけど、自分の他のスクリプトと合わせて使いたかったので、WordPress関数で値を取得して、出力はSmartyでやってみたというメモ。 まぁ想像はつくんですけどね。何がめんどくさいって、WordPressの独自関数。 なんかもう調べるのがめんどくさい。リファレンスの日本語化が中途半端だし。最初から英語で調べたほうがストレス少ないかも。 すいません、愚痴です。 以下、その方法。 １）新しいテーマを作成するのと同じように、「wp-content/themes/hoge/」というディレクトリを作る ２）index.phpとstyle.cssを設置する →style.cssは作者情報を格納するので必須みたい ３）style.cssの中身 何でもいいんだけど、こんな感じで作者情報を入れておく。 @charset "utf-8"; /* Theme Name: Quoit Theme URI: http://ken.quoit.jp/ Description: Smartyで出力テストテンプレート Author: yakumo27 Version: 1.0 Tags: smarty */ ４）index.phpの中身 今回のキモですね。 WordPressの独自関数は、書いた時点で出力までするものが多いです。 モノによっては引数を与えると値を返してくれる関数もあるんですが、ぶっちゃけ統一感はありません。 ここでは最低限必要な関数だけ紹介します。 タイトルを取得する「 the_title() 」関数 テンプレートタグ/the title &#8211; WordPress Codex 日本語版 本文を取得する「 get_the_content() 」関数 Function Reference/get the content ? WordPress Codex タイトルに関しては、the_title() 関数の第三引数に「false」を指定することで、値を返してくれます。 [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>WordPressはテンプレート機能を備えているので、テーマファイルを作ることで、簡単に自分のテーマが作れます。</p>
<p>作れますけど、自分の他のスクリプトと合わせて使いたかったので、WordPress関数で値を取得して、出力はSmartyでやってみたというメモ。</p>
<p><span id="more-558"></span></p>
<p><span style="font-size: 10px;"><br />
まぁ想像はつくんですけどね。何がめんどくさいって、WordPressの独自関数。<br />
なんかもう調べるのがめんどくさい。リファレンスの日本語化が中途半端だし。最初から英語で調べたほうがストレス少ないかも。<br />
</span><br />
すいません、愚痴です。</p>
<p>以下、その方法。</p>
<hr />
<p><strong>１）新しいテーマを作成するのと同じように、「wp-content/themes/hoge/」というディレクトリを作る</strong></p>
<p><strong>２）index.phpとstyle.cssを設置する</strong><br />
→style.cssは作者情報を格納するので必須みたい</p>
<p><strong>３）style.cssの中身</strong><br />
何でもいいんだけど、こんな感じで作者情報を入れておく。</p>
<pre name="code" class="php">
@charset "utf-8";
/*
Theme Name: Quoit
Theme URI: http://ken.quoit.jp/
Description: Smartyで出力テストテンプレート
Author: yakumo27
Version: 1.0
Tags: smarty
*/
</pre>
<p><strong>４）index.phpの中身</strong><br />
今回のキモですね。<br />
WordPressの独自関数は、書いた時点で出力までするものが多いです。<br />
モノによっては引数を与えると値を返してくれる関数もあるんですが、ぶっちゃけ統一感はありません。</p>
<p>ここでは最低限必要な関数だけ紹介します。</p>
<blockquote><p>
タイトルを取得する「 the_title() 」関数<br />
<a 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/the_title" target="_blank">テンプレートタグ/the title &#8211; WordPress Codex 日本語版</a>
</p></blockquote>
<blockquote><p>
本文を取得する「 get_the_content() 」関数<br />
<a href="http://codex.wordpress.org/Function_Reference/get_the_content" target="_blank">Function Reference/get the content ? WordPress Codex</a>
</p></blockquote>
<p>タイトルに関しては、the_title() 関数の第三引数に「false」を指定することで、値を返してくれます。</p>
<p>本文を出力するには the_contents() っていう関数があるのだが、こちらは引数を変えても値を返してくれない。なんじゃそりゃ。</p>
<p>なので、get_the_content() という関数を使う。こちらは逆に必ず値を返す関数なので、出力はしない。</p>
<p>今回はテーマファイルの書き方にならって、次のように配列を作った。<br />
Smartyの設定関連は省略。</p>
<pre name="code" class="php">
$smarty=new Smarty();

$contents=array();
$idx=0;

if(have_posts()) : while(have_posts()) : the_post() ;

$contents[$idx]["title"]=the_title('','',false);
$contents[$idx]["content"]=get_the_content();

$idx++;

endwhile; else:

$contents[$idx]["error"]="表示する内容がありません。"

endif;

$smarty-&gt;assign("contents",$contents);

$smarty-&gt;display("./index.tpl");
</pre>
<p>テーマファイルを作ったことがある人なら何となく見たことがあるかもしれない。<br />
余談だけど、phpのこのif文とwhile文の書き方って一般的ではない気がする。<br />
わかんないけど、僕は普段こうは書かない。</p>
<p>これで、$contentsという配列にタイトルと本文の情報が入った。<span style="font-size: 10px;">（$idxが気に入らないけど）</span></p>
<p>そして、Smartyのテンプレート側。<br />
これはSmarty使ったことがある人ならわかるだろうけど一応。</p>
<pre name="code" class="xml">
{foreach from=$contents item=val}

{$val.title}

{$val.content}

{/foreach}
</pre>
<p>こんなもんです。</p>
<p><strong>５）Smartyのコンパイルディレクトリを設置</strong><br />
これはブログのルートディレクトリに配置します。<br />
wp-adminとかwp-contentsと並んでコンパイルディレクトリを置くということです。<br />
パーミションはよしなに。まぁ普通777なんじゃないでしょうか。</p>
<hr />
<p>以上です。</p>
<p>まぁそんなに難しいことはないですね。<span style="font-size: 10px;">っていうかこんなことする人あんまりいないですよね</span></p>
<p>何か質問があったらコメント欄かTwitterでください。</p>
<div class="shr-publisher-558"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://ken.quoit.jp/2010/12/21/wordpress%e3%81%ae%e3%83%86%e3%83%bc%e3%83%9e%e3%81%absmarty%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e5%87%ba%e5%8a%9b%e3%81%95%e3%81%9b%e3%81%a6%e3%81%bf%e3%81%9f/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>【メモ】WordPressのプレビューが効かなくなったときの対策</title>
		<link>http://ken.quoit.jp/2010/06/25/%e3%80%90%e3%83%a1%e3%83%a2%e3%80%91wordpress%e3%81%ae%e3%83%97%e3%83%ac%e3%83%93%e3%83%a5%e3%83%bc%e3%81%8c%e5%8a%b9%e3%81%8b%e3%81%aa%e3%81%8f%e3%81%aa%e3%81%a3%e3%81%9f%e3%81%a8%e3%81%8d%e3%81%ae/</link>
		<comments>http://ken.quoit.jp/2010/06/25/%e3%80%90%e3%83%a1%e3%83%a2%e3%80%91wordpress%e3%81%ae%e3%83%97%e3%83%ac%e3%83%93%e3%83%a5%e3%83%bc%e3%81%8c%e5%8a%b9%e3%81%8b%e3%81%aa%e3%81%8f%e3%81%aa%e3%81%a3%e3%81%9f%e3%81%a8%e3%81%8d%e3%81%ae/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 06:55:42 +0000</pubDate>
		<dc:creator>yakumo</dc:creator>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://ken.quoit.jp/?p=442</guid>
		<description><![CDATA[自分のためのメモ。 参考にしたページはこちら。 http://ja.forums.wordpress.org/topic/3053 まず最初に疑うのは、.htaccess。 僕の場合も、.htaccessでDirectoryIndexを指定する作りになってたので、これが原因。 引き継いだ案件は困る要素が盛りだくさんです。。。orz]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>自分のためのメモ。</p>
<p><span id="more-442"></span></p>
<p>参考にしたページはこちら。</p>
<blockquote><p>http://ja.forums.wordpress.org/topic/3053</p></blockquote>
<p>まず最初に疑うのは、.htaccess。</p>
<p>僕の場合も、.htaccessでDirectoryIndexを指定する作りになってたので、これが原因。</p>
<p>引き継いだ案件は困る要素が盛りだくさんです。。。orz</p>
<div class="shr-publisher-442"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://ken.quoit.jp/2010/06/25/%e3%80%90%e3%83%a1%e3%83%a2%e3%80%91wordpress%e3%81%ae%e3%83%97%e3%83%ac%e3%83%93%e3%83%a5%e3%83%bc%e3%81%8c%e5%8a%b9%e3%81%8b%e3%81%aa%e3%81%8f%e3%81%aa%e3%81%a3%e3%81%9f%e3%81%a8%e3%81%8d%e3%81%ae/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPressのフィードリンク生成</title>
		<link>http://ken.quoit.jp/2010/04/09/wordpress%e3%81%ae%e3%83%95%e3%82%a3%e3%83%bc%e3%83%89%e3%83%aa%e3%83%b3%e3%82%af%e7%94%9f%e6%88%90/</link>
		<comments>http://ken.quoit.jp/2010/04/09/wordpress%e3%81%ae%e3%83%95%e3%82%a3%e3%83%bc%e3%83%89%e3%83%aa%e3%83%b3%e3%82%af%e7%94%9f%e6%88%90/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 09:05:09 +0000</pubDate>
		<dc:creator>yakumo</dc:creator>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://ken.quoit.jp/?p=371</guid>
		<description><![CDATA[このところWordPressをいじる日々が続いたので、備忘録のためにもメモ。 今回はフィードについて。 いつものように、ツッコミお待ちしております。 WordPressのフィードはGETの引数として「?feed=rss」とかつけると取得できます。 このブログであれば、 このブログのRSS http://ken.quoit.jp/?feed=rss これでRSSを取得できますが、カテゴリなどで検索した結果をRSSとして取得したい場合もあります。 その場合も同様に、 このブログの「HTML／CSS」カテゴリのRSS http://ken.quoit.jp/category/htmlcss/?feed=rss こうすればそのカテゴリのRSSを取得できます。 カテゴリなどのURLがGETの引数「?category=htmlcss」になっている場合は、 このブログの「HTML／CSS」カテゴリのRSS http://ken.quoit.jp/category/htmlcss/?category=htmlcss&#38;feed=rss こうやって＆（アンパサンド）で繋げば大丈夫。 とても簡単。 また、「現在表示中のページ」のRSSを出力したい場合は、下記のコードを使えば取得できます。 ※GETの値をチェックするスクリプトは省いています。セキュリティには各自気をつけてください。 &#60;?php $getquery=array(); if($_GET){ foreach($_GET as $k=&#62;$v){ if($k!=&#8221;paged&#8221;){# ページングの引数は除く array_push($getquery,$k.&#8221;=&#8221;.$v); } } } array_push($getquery,&#8221;feed=rss2&#8243;); $getquery=join(&#8220;&#38;&#8221;,$getquery); ?&#62; &#60;a href=&#8221;?&#60;?php echo $getquery; ?&#62;&#8221;&#62;フィードを取得&#60;/a&#62; ＜　追記：20100409 18:10　＞ ついったーで指摘頂きました。@shiroutoSEOさんありがとうございます。 @shiroutoSEOさんの運営されてるかちびと.netにはWordPress関連の貴重な情報がたくさんあります。 WordPress使いは是非見ておくべき！ で、追記。 htaccessでURLを変更している場合には、下記の方法でもフィードを取得できます。 このブログの「HTML／CSS」カテゴリのRSS http://ken.quoit.jp/category/htmlcss/feed/rss/ または このブログの「HTML／CSS」カテゴリのRSS http://ken.quoit.jp/category/htmlcss/feed/ 後述の方法で「/rss/」を省略した場合、RSS1.0が出力されるようです。 ついでに。 RSS2.0を出力する場合は「?feed=rss2」 ATOMフィードの場合は「?feed=atom」 [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>このところWordPressをいじる日々が続いたので、備忘録のためにもメモ。</p>
<p>今回はフィードについて。</p>
<p>いつものように、ツッコミお待ちしております。</p>
<p><span id="more-371"></span></p>
<p>WordPressのフィードはGETの引数として「?feed=rss」とかつけると取得できます。</p>
<p>このブログであれば、</p>
<blockquote><p>このブログのRSS<br />
<a href="http://ken.quoit.jp/?feed=rss">http://ken.quoit.jp/?feed=rss</a></p></blockquote>
<p>これでRSSを取得できますが、カテゴリなどで検索した結果をRSSとして取得したい場合もあります。</p>
<p>その場合も同様に、</p>
<blockquote><p>このブログの「HTML／CSS」カテゴリのRSS<br />
<a href="http://ken.quoit.jp/category/htmlcss/?feed=rss">http://ken.quoit.jp/category/htmlcss/?feed=rss</a></p></blockquote>
<p>こうすればそのカテゴリのRSSを取得できます。</p>
<p>カテゴリなどのURLがGETの引数「?category=htmlcss」になっている場合は、</p>
<blockquote><p>このブログの「HTML／CSS」カテゴリのRSS<br />
<a href="http://ken.quoit.jp/category/htmlcss/?category=htmlcss&amp;feed=rss">http://ken.quoit.jp/category/htmlcss/?category=htmlcss&amp;feed=rss</a></p></blockquote>
<p>こうやって＆（アンパサンド）で繋げば大丈夫。<br />
とても簡単。</p>
<p>また、「現在表示中のページ」のRSSを出力したい場合は、下記のコードを使えば取得できます。<br />
※GETの値をチェックするスクリプトは省いています。セキュリティには各自気をつけてください。</p>
<blockquote><p>
&lt;?php<br />
$getquery=array();<br />
if($_GET){<br />
foreach($_GET as $k=&gt;$v){<br />
if($k!=&#8221;paged&#8221;){# ページングの引数は除く<br />
array_push($getquery,$k.&#8221;=&#8221;.$v);<br />
}<br />
}<br />
}<br />
array_push($getquery,&#8221;feed=rss2&#8243;);<br />
$getquery=join(&#8220;&amp;&#8221;,$getquery);<br />
?&gt;<br />
&lt;a href=&#8221;?&lt;?php echo $getquery; ?&gt;&#8221;&gt;フィードを取得&lt;/a&gt;
</p></blockquote>
<p>＜　追記：20100409 18:10　＞<br />
ついったーで指摘頂きました。<a href="http://twitter.com/shiroutoSEO" target="_blank">@shiroutoSEOさん</a>ありがとうございます。<br />
<strong><a href="http://twitter.com/shiroutoSEO" target="_blank">@shiroutoSEOさん</a>の運営されてる<a href="http://kachibito.net/" target="_blank">かちびと.net</a>にはWordPress関連の貴重な情報がたくさんあります。<br />
WordPress使いは是非見ておくべき！<br />
</strong><br />
で、追記。<br />
htaccessでURLを変更している場合には、下記の方法でもフィードを取得できます。</p>
<blockquote><p>このブログの「HTML／CSS」カテゴリのRSS<br />
<a href="http://ken.quoit.jp/category/htmlcss/feed/rss/">http://ken.quoit.jp/category/htmlcss/feed/rss/</a></p></blockquote>
<p>または</p>
<blockquote><p>このブログの「HTML／CSS」カテゴリのRSS<br />
<a href="http://ken.quoit.jp/category/htmlcss/feed/">http://ken.quoit.jp/category/htmlcss/feed/</a></p></blockquote>
<p>後述の方法で「/rss/」を省略した場合、RSS1.0が出力されるようです。</p>
<p>ついでに。</p>
<p>RSS2.0を出力する場合は「?feed=rss2」<br />
ATOMフィードの場合は「?feed=atom」</p>
<p>とすると、それぞれ出力されます。</p>
<div class="shr-publisher-371"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://ken.quoit.jp/2010/04/09/wordpress%e3%81%ae%e3%83%95%e3%82%a3%e3%83%bc%e3%83%89%e3%83%aa%e3%83%b3%e3%82%af%e7%94%9f%e6%88%90/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【メモ】WordPressのページングについて</title>
		<link>http://ken.quoit.jp/2010/04/06/%e3%80%90%e3%83%a1%e3%83%a2%e3%80%91wordpress%e3%81%ae%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%b3%e3%82%b0%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/</link>
		<comments>http://ken.quoit.jp/2010/04/06/%e3%80%90%e3%83%a1%e3%83%a2%e3%80%91wordpress%e3%81%ae%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%b3%e3%82%b0%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 06:14:55 +0000</pubDate>
		<dc:creator>yakumo</dc:creator>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://ken.quoit.jp/?p=369</guid>
		<description><![CDATA[※自分用のメモです WordPressのページングで、最初のページにあえて引数「?paged=1」とつけたいとき。 WordPressのバージョンは 2.9.2。 【wp-includes/link-template.php】 function get_pagenum_link内の1305行目にある if ( $pagenum > 1 ) { $result = add_query_arg( &#8216;paged&#8217;, $pagenum, $base . $request ); } else { $result = $base . $request; } これを $result = add_query_arg( &#8216;paged&#8217;, $pagenum, $base . $request ); こうする。 以上。]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>※自分用のメモです</p>
<p>WordPressのページングで、最初のページにあえて引数「?paged=1」とつけたいとき。<br />
WordPressのバージョンは 2.9.2。</p>
<p>【wp-includes/link-template.php】<br />
function get_pagenum_link内の1305行目にある</p>
<blockquote><p>
		if ( $pagenum > 1 ) {<br />
			$result = add_query_arg( &#8216;paged&#8217;, $pagenum, $base . $request );<br />
		} else {<br />
			$result = $base . $request;<br />
		}
</p></blockquote>
<p>これを</p>
<blockquote><p>
		$result = add_query_arg( &#8216;paged&#8217;, $pagenum, $base . $request );
</p></blockquote>
<p>こうする。</p>
<p>以上。</p>
<div class="shr-publisher-369"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://ken.quoit.jp/2010/04/06/%e3%80%90%e3%83%a1%e3%83%a2%e3%80%91wordpress%e3%81%ae%e3%83%9a%e3%83%bc%e3%82%b8%e3%83%b3%e3%82%b0%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPressの画像保存場所について</title>
		<link>http://ken.quoit.jp/2009/10/06/wordpress%e3%81%ae%e7%94%bb%e5%83%8f%e4%bf%9d%e5%ad%98%e5%a0%b4%e6%89%80%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/</link>
		<comments>http://ken.quoit.jp/2009/10/06/wordpress%e3%81%ae%e7%94%bb%e5%83%8f%e4%bf%9d%e5%ad%98%e5%a0%b4%e6%89%80%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 09:52:07 +0000</pubDate>
		<dc:creator>yakumo</dc:creator>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://ken.quoit.jp/?p=159</guid>
		<description><![CDATA[以前、WordPressでメール投稿　Ktai Entry についてという記事で触れていたのだが、WordPress2.8.4で画像をアップロードした際、wp-content直下に保存されてしまうという問題。 フォーラムに解決策があった。 WP2.6 uploadsディレクトリを変更している場合の画像ファイルのアップロード 私は「設定」＞「その他の設定」で画像のアップロード先を指定できるということを知らなかったので、しちめんどくさい方法を取ってしまっていたと言うわけです。 ここで問題なのは、私はWordPress2.8.4をインストールしてから、上記の設定をいじったことはないということ。 つまり、2.8.4ではデフォルトでwp-content直下に画像が保存される設定になってしまっている？？ （フォーラムの他の記事を詳しく確認していないので、もしかしたらアナウンスされてるのかも） 画像が表示されない方は是非上記設定のご確認を。]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>以前、<a href="http://ken.quoit.jp/2009/09/11/wordpress%E3%81%A7%E3%83%A1%E3%83%BC%E3%83%AB%E6%8A%95%E7%A8%BF%E3%80%80ktai-entry-%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6/">WordPressでメール投稿　Ktai Entry について</a>という記事で触れていたのだが、WordPress2.8.4で画像をアップロードした際、wp-content直下に保存されてしまうという問題。</p>
<p>フォーラムに解決策があった。<br />
<span id="more-159"></span><br />
<a href="http://ja.forums.wordpress.org/topic/502?replies=1">WP2.6 uploadsディレクトリを変更している場合の画像ファイルのアップロード</a></p>
<p>私は「設定」＞「その他の設定」で画像のアップロード先を指定できるということを知らなかったので、しちめんどくさい方法を取ってしまっていたと言うわけです。</p>
<p>ここで問題なのは、私はWordPress2.8.4をインストールしてから、上記の設定をいじったことはないということ。</p>
<p>つまり、2.8.4ではデフォルトでwp-content直下に画像が保存される設定になってしまっている？？</p>
<p>（フォーラムの他の記事を詳しく確認していないので、もしかしたらアナウンスされてるのかも）</p>
<p>画像が表示されない方は是非上記設定のご確認を。</p>
<div class="shr-publisher-159"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://ken.quoit.jp/2009/10/06/wordpress%e3%81%ae%e7%94%bb%e5%83%8f%e4%bf%9d%e5%ad%98%e5%a0%b4%e6%89%80%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>書籍紹介：「WordPress標準ガイドブック」</title>
		<link>http://ken.quoit.jp/2009/10/02/%e6%9b%b8%e7%b1%8d%e7%b4%b9%e4%bb%8b%ef%bc%9a%e3%80%8cwordpress%e6%a8%99%e6%ba%96%e3%82%ac%e3%82%a4%e3%83%89%e3%83%96%e3%83%83%e3%82%af%e3%80%8d/</link>
		<comments>http://ken.quoit.jp/2009/10/02/%e6%9b%b8%e7%b1%8d%e7%b4%b9%e4%bb%8b%ef%bc%9a%e3%80%8cwordpress%e6%a8%99%e6%ba%96%e3%82%ac%e3%82%a4%e3%83%89%e3%83%96%e3%83%83%e3%82%af%e3%80%8d/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 03:38:48 +0000</pubDate>
		<dc:creator>yakumo</dc:creator>
				<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[書籍紹介]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://ken.quoit.jp/?p=130</guid>
		<description><![CDATA[これからWordPressをやってみようと考えている人がもしこのブログを読んでいたら、と思って書籍紹介など。 ※このリンクはアマゾンアフィリエイトです。 ※アフィリエイトが嫌いな方はこちらから。 WordPress日本語コミュニティの中の人である、マクラケン直子さんの本です。 2006年初版ですので、内容は既に古くなっています。 ※この本のCD-ROMに収録されているバージョン2.0.4ではなく、最新版を使いましょう。 ※この記事執筆時点での最新版は2.8.4です。 ※最新版は必ずWordPress公式サイトでチェックしてください。 インストール手順も多少変わってますので、ネットで調べたりする必要はあるかもしれません。 にも関わらず、この本が有益だと感じられるのは、基本的な知識だけでなく実際の運用が強く意識されていることです。 WordPressはブログエンジンというよりはCMSに近いため、通常のWEBサイトを構築することも可能です。 この本には、カスタマイズやテーマの作成方法（テーマの作成は非常に参考になりました）、そして様々なヒントが書かれています。 HTMLも一通り理解できる、PHPはなんとなく知ってる、というくらいの知識があるとすごく楽しめるでしょう。 ちなみに私が一番嬉しかったのは付録のテンプレートタグリファレンスでした。]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>これからWordPressをやってみようと考えている人がもしこのブログを読んでいたら、と思って書籍紹介など。<br />
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?t=yakumo27-22&#038;o=9&#038;p=8&#038;l=as1&#038;asins=4839921695&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=0000FF&#038;bc1=000000&#038;bg1=FFFFFF&#038;f=ifr" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br />
<small><br />
※このリンクはアマゾンアフィリエイトです。<br />
※アフィリエイトが嫌いな方は<a href="http://www.amazon.co.jp/WordPress%E6%A8%99%E6%BA%96%E3%82%AC%E3%82%A4%E3%83%89%E3%83%96%E3%83%83%E3%82%AF%E2%80%95%E5%B0%8E%E5%85%A5-%E5%9F%BA%E6%9C%AC%E6%93%8D%E4%BD%9C%E3%81%8B%E3%82%89%E3%83%95%E3%83%AB%E3%83%81%E3%83%A5%E3%83%BC%E3%83%B3%E3%81%BE%E3%81%A7-%E3%83%9E%E3%82%AF%E3%83%A9%E3%82%B1%E3%83%B3-%E7%9B%B4%E5%AD%90/dp/4839921695/ref=sr_1_9?ie=UTF8&amp;s=books&amp;qid=1253779431&amp;sr=8-9" target="_blank">こちら</a>から。<br />
</small><br />
<span id="more-130"></span><br />
WordPress日本語コミュニティの中の人である、<a href="http://detlog.org/">マクラケン直子さん</a>の本です。</p>
<blockquote><p>2006年初版ですので、内容は既に古くなっています。<br />
※この本のCD-ROMに収録されているバージョン2.0.4ではなく、最新版を使いましょう。<br />
※この記事執筆時点での最新版は2.8.4です。<br />
※最新版は必ず<a href="http://ja.wordpress.org/" target="_blank">WordPress公式サイト</a>でチェックしてください。</p></blockquote>
<p>インストール手順も多少変わってますので、ネットで調べたりする必要はあるかもしれません。</p>
<p>にも関わらず、この本が有益だと感じられるのは、基本的な知識だけでなく<b>実際の運用が強く意識されていること</b>です。</p>
<p>WordPressはブログエンジンというよりはCMSに近いため、通常のWEBサイトを構築することも可能です。</p>
<p>この本には、カスタマイズやテーマの作成方法（テーマの作成は非常に参考になりました）、そして様々なヒントが書かれています。</p>
<p>HTMLも一通り理解できる、PHPはなんとなく知ってる、というくらいの知識があるとすごく楽しめるでしょう。</p>
<p>ちなみに私が一番嬉しかったのは付録のテンプレートタグリファレンスでした。</p>
<div class="shr-publisher-130"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://ken.quoit.jp/2009/10/02/%e6%9b%b8%e7%b1%8d%e7%b4%b9%e4%bb%8b%ef%bc%9a%e3%80%8cwordpress%e6%a8%99%e6%ba%96%e3%82%ac%e3%82%a4%e3%83%89%e3%83%96%e3%83%83%e3%82%af%e3%80%8d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

