<?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>Let's use WordPress</title>
	<atom:link href="http://letsusewordpress.com/feed" rel="self" type="application/rss+xml" />
	<link>http://letsusewordpress.com</link>
	<description>WordPressを利用してブログっぽくないサイトをつくる</description>
	<lastBuildDate>Fri, 29 Jan 2010 06:42:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>管理画面カスタマイズ～ログイン編（bm-custom-login）</title>
		<link>http://letsusewordpress.com/archives/256</link>
		<comments>http://letsusewordpress.com/archives/256#comments</comments>
		<pubDate>Thu, 28 Jan 2010 17:12:04 +0000</pubDate>
		<dc:creator>ジェイ</dc:creator>
				<category><![CDATA[プラグイン]]></category>

		<guid isPermaLink="false">http://letsusewordpress.com/?p=256</guid>
		<description><![CDATA[お客様へ納品（たとえ知り合いで安く作ったとしても＾＾；）する時、Wordpressを使うことを説明したとしても、管理画面をカスタマイズしたい時があります。
そんな時に一番見た目でインパクトがかわるのは、ログイン画面がその [...]]]></description>
			<content:encoded><![CDATA[<p>お客様へ納品（たとえ知り合いで安く作ったとしても＾＾；）する時、Wordpressを使うことを説明したとしても、管理画面をカスタマイズしたい時があります。</p>
<p>そんな時に一番見た目でインパクトがかわるのは、ログイン画面がその1つだと思います。</p>
<p><span id="more-256"></span></p>
<p>その対策として、本体コードや画像を直接変更するのも手だと思いますが、本体バージョンアップに備え、プラグインで実装したいと考えよく使っているプラグインを記録として残しときます。</p>
<p>「bm-custom-login」</p>
<p>http://www.binarymoon.co.uk/projects/bm-custom-login/</p>
<p>利用方法は通常のプラグインと同じ。pluginsフォルダにアップし、管理画面から有効にするだけ。<br />
ただし、デフォルトのままだと、ログイン画面の背景画像が表示されません。<br />
サンプル画像のファイル名のままだったりするので、bm-custom-loginフォルダ内のimagesフォルダにある<br />
「login-bkg-tile-SAMPLE.jpg」<br />
　　↓<br />
「login-bkg-tile.jpg」<br />
とすれば表示されます。</p>
<p>実際には、bm-cutom-loginフォルダ内のimage-templatesフォルダのpsdファイルを参考に納品用の画像を作って、上記説明のファイルに置き換えることとなるんでしょうけどね。</p>
<p>ちなみに、本投稿時、プラグイン配布元のバージョン確認はwordpress2.8だったようですが、私の環境である2.9.1でも問題なく動作しています。</p>
]]></content:encoded>
			<wfw:commentRss>http://letsusewordpress.com/archives/256/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>$post-&gt;post_parentからget_post_ancestorsへ。サイドバーに親ページ、子ページ、孫ページ・・・等々、ページのリストを表示させたい</title>
		<link>http://letsusewordpress.com/archives/189</link>
		<comments>http://letsusewordpress.com/archives/189#comments</comments>
		<pubDate>Sat, 04 Apr 2009 10:30:59 +0000</pubDate>
		<dc:creator>ジェイ</dc:creator>
				<category><![CDATA[コード]]></category>
		<category><![CDATA[テーマカスタマイズ]]></category>
		<category><![CDATA[サイドバー]]></category>
		<category><![CDATA[ページ]]></category>

		<guid isPermaLink="false">http://letsusewordpress.com/?p=189</guid>
		<description><![CDATA[カテゴリーもそうですが、ページにも階層があります。そうなるとあるページを表示させた場合に、そのページの子ページの一覧をサイドバーに表示させる要件がでてきます。むしろ、ビジネスサイトだとページを主につかって構成することの方 [...]]]></description>
			<content:encoded><![CDATA[<p>カテゴリーもそうですが、ページにも階層があります。そうなるとあるページを表示させた場合に、そのページの子ページの一覧をサイドバーに表示させる要件がでてきます。むしろ、ビジネスサイトだとページを主につかって構成することの方が多いんじゃないでしょうか。</p>
<p>以下、実現に向けた紆余曲折です。いろいろと試していたら、とても長いエントリーになってしまいました。自分への覚書のようなエントリーみたいになってしまったので、結論だけ知りたい場合は一番下のコードをご覧下さい。</p>
<p><span id="more-189"></span></p>
<p>■パターン１<br />
単純に、自分の親IDを取得し、その親ID以下の子ページリストを出力</p>
<pre class="brush: php; auto-links: false;" style="margin:18px 0;">
&lt;?php
if (is_page()){
	if($post-&gt;post_parent)
		$children = wp_list_pages(&quot;title_li=&amp;depth=0&amp;child_of=&quot;.$post-&gt;post_parent.&quot;&amp;echo=0&quot;); else
		$children = wp_list_pages(&quot;title_li=&amp;depth=0&amp;child_of=&quot;.$post-&gt;ID.&quot;&amp;echo=0&quot;);
	if ($children) { ?&gt;
		&lt;div class=&quot;sub_box&quot;&gt;
		&lt;ul&gt;
		&lt;?php echo $children; ?&gt;
		&lt;/ul&gt;
		&lt;/div&gt;
	&lt;?php } ?&gt;
&lt;?php } ?&gt;
</pre>
<p>※3,4行目で使っているwp_list_pagesの引数depthで何階層下まで表示させるかを指定しています。</p>
<p>もっともシンプルだと思う子ページリストの表示。ただし、自分の親以下のページしか対象になりません。例えば見ているページが3階層目にいるとした場合、2階層目以下のページリストしか表示できません。</p>
<p>■パターン２<br />
パターン１で問題になった3階層目で2階層目以下のページリストしか取れない場合の対策。<br />
参考：<a href="http://ja.forums.wordpress.org/topic/960">http://ja.forums.wordpress.org/topic/960</a></p>
<pre class="brush: php; auto-links: false;" style="margin:18px 0;">
&lt;?php
$parent_id = $post-&gt;post_parent;
if ($parent_id) {
  $parent = get_post($parent_id);
  $gparent_id = ($parent-&gt;post_parent);
	$children = wp_list_pages(&quot;title_li=&amp;depth=0&amp;child_of=&quot;.$gparent_id.&quot;&amp;echo=0&quot;);
	if ($children) { ?&gt;
	&lt;div class=&quot;sub_box&quot;&gt;
	&lt;ul&gt;
		&lt;?php echo $children; ?&gt;
	&lt;/ul&gt;
	&lt;/div&gt;
	&lt;?php } ?&gt;
&lt;?php } ?&gt;
</pre>
<p>単純に親ページの親ページまで探して、そこから以下のページを表示させます。<br />
これで3階層目にいても1階層目からのリストをつくれますが、もっと増えた場合には、親の親の親の・・・とする部分を追加でコードを書かないといけません。</p>
<p>■パターン２の別解<br />
ネット検索中に違う書き方で実現されていました。<br />
参考：（引用先のアドレスを失念してしましました。）</p>
<pre class="brush: php; auto-links: false;" style="margin:18px 0;">
&lt;?php
if (is_page()){
	global $wp_query;
	if( empty($wp_query-&gt;post-&gt;post_children) ) {
		$parent = $wp_query-&gt;post-&gt;ID;
	} else {
		$parent = $wp_query-&gt;post-&gt;post_children;
	} ?&gt;
&lt;?php if(wp_list_pages(&quot;title_li=&amp;child_of=$parent&amp;echo=0&quot;)): ?&gt;
&lt;br /&gt;
メニュー
&lt;div class=&quot;sub_box&quot;&gt;
&lt;ul&gt;
&lt;?php wp_list_pages(&quot;title_li=&amp;child_of=$parent&quot;); ?&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;?php endif; ?&gt;
&lt;?php } ?&gt;
</pre>
<p>■パターン３<br />
パターン２までの流れで一番上の親ページIDを再帰関数で取得すれば汎用的になるのでは、と考えました。<br />
ちょうど、カテゴリーで同じようなことをしていたのでその応用です。<br />
（参考：<a href="http://letsusewordpress.com/archives/75">get_query_varと親カテゴリーを探す再帰関数を作って特定カテゴリの以下のカテゴリ一覧を表示する方法</a>）</p>
<p>関数化したため、functions.phpを用意しています。また、引数の使い方の違いから3例作ってみました。</p>
<p>＜例1＞<br />
【sidebar.php】</p>
<pre class="brush: php; auto-links: false;" style="margin:18px 0;">
&lt;?php
$post_id = luwp_get_post_id_top($post-&gt;ID);
if ($post_id) {
	$children = wp_list_pages(&quot;title_li=&amp;child_of=&quot;.$post_id.&quot;&amp;echo=0&quot;);
	if ($children) { ?&gt;
	&lt;div class=&quot;sub_box&quot;&gt;
	&lt;ul&gt;
		&lt;?php echo $children; ?&gt;
	&lt;/ul&gt;
	&lt;/div&gt;
	&lt;?php } ?&gt;
&lt;?php } ?&gt;
</pre>
<p>【functions.php】</p>
<pre class="brush: php; auto-links: false;" style="margin:18px 0;">
function luwp_get_post_id_top($post_id) {
	if($post_id != 0){
		$post = get_post($post_id);
		$parent_id = $post-&gt;post_parent;
		if($parent_id){
			$parent = get_post($parent_id);
			$post_id = ($parent-&gt;post_parent);
			if($post_id != 0){
				$post_id = luwp_get_post_id_top($post_id);
			} else {
				$post_id = $parent_id;
			}
		}
	}
	return $post_id;
}
</pre>
<p>IDを引数にし、IDを戻り値にしています。これだと、呼び出し元に$postがあるにも関わらず、関数先でget_postを呼び出している。その点、富豪プログラムになっている気が・・・<br />
だだし、IDを渡してIDが戻る、という部分でみると一貫性があるのかな・・・。</p>
<p>＜例2＞<br />
【sidebar.php】</p>
<pre class="brush: php; auto-links: false;" style="margin:18px 0;">
&lt;?php
$post_id = luwp_get_post_id_top($post);
if ($post_id) {
	$children = wp_list_pages(&quot;title_li=&amp;child_of=&quot;.$post_id.&quot;&amp;echo=0&quot;);
	if ($children) { ?&gt;
	&lt;div class=&quot;sub_box&quot;&gt;
	&lt;ul&gt;
		&lt;?php echo $children; ?&gt;
	&lt;/ul&gt;
	&lt;/div&gt;
	&lt;?php } ?&gt;
&lt;?php } ?&gt;
</pre>
<p>【functions.php】</p>
<pre class="brush: php; auto-links: false;" style="margin:18px 0;">
function luwp_get_post_id_top($post) {
	if($post){
		$parent_id = $post-&gt;post_parent;
		echo $parent_id;
		if($parent_id || $parent_id != 0 ){
			$parent = get_post($parent_id);
			$post_id = ($parent-&gt;post_parent);
			if($post_id != 0){
				$post_id = luwp_get_post_id_top($post_id);
			} else {
				$post_id = $parent_id;
			}
		return $post_id;
		}
		return $post-&gt;ID;
	}
}
</pre>
<p>引数に配列を渡して、IDが戻り値。これだと、前述の例1のように、関数内で最初のget_postが除かれる形に。負荷的に最適化されたと言っていいのかな・・・？</p>
<p>＜例3＞<br />
【sidebar.php】</p>
<pre class="brush: php; auto-links: false;" style="margin:18px 0;">
&lt;?php
$post_top = luwp_get_post_top($post);
$post_id = $post_top-&gt;ID;
if ($post_id) {
	$children = wp_list_pages(&quot;title_li=&amp;child_of=&quot;.$post_id.&quot;&amp;echo=0&quot;);
	if ($children) { ?&gt;
	&lt;br /&gt;luwp_get_post_top
	&lt;div class=&quot;sub_box&quot;&gt;
	&lt;ul&gt;
		&lt;?php echo $children; ?&gt;
	&lt;/ul&gt;
	&lt;/div&gt;
	&lt;?php } ?&gt;
&lt;?php } ?&gt;
</pre>
<p>【functions.php】</p>
<pre class="brush: php; auto-links: false;" style="margin:18px 0;">
function luwp_get_post_top($post) {
	if($post){
		$parent_id = $post-&gt;post_parent;
		if($parent_id &amp;&amp; $parent_id != 0 ){
			$parent = get_post($parent_id);
			$post_id = ($parent-&gt;post_parent);
			if($post_id != 0){
				$post = luwp_get_post_top($parent);
			} else {
				$post = $parent;
			}
			return $post;
		}
		return $post;
	}
	return $post;
}
</pre>
<p>こっちは、配列で渡して配列で戻しています。どのタイプがいいのか悩みます。</p>
<p>という具合でページのリストについて勉強を重ねていたところ、get_post_ancestorsという関数があることを知りました。</p>
<p>そして、打ちのめされたわけです。</p>
<p>この関数を使えば、自分（ページ）の祖先全てが配列で値が返ってきるのです。<br />
つまり、functions.phpに再帰関数などを用意しなくていい、と。</p>
<p>その瞬間の脱力感というか、新しい発見の喜びというか、たいへん複雑でした。<br />
このエントリーもほぼ平行して下書きをしていたため、内容をどうするか悩みましたが、自分の今後のために一部始終を記録としてまとめておくことにしました。</p>
<p>とういわけで、大変長くなりましたが、最終的に辿りついたページのリストをサイドバーに出す方法です。<br />
■get_post_ancestorsを使う方法<br />
参考：<a href="http://ja.forums.wordpress.org/topic/1204">http://ja.forums.wordpress.org/topic/1204</a></p>
<pre class="brush: php; auto-links: false;" style="margin:18px 0;">
&lt;?php
if (is_page()){
	if($post-&gt;ancestors){
		foreach($post-&gt;ancestors as $post_anc_id){
			$post_id = $post_anc_id;
		}
	} else {
		$post_id = $post-&gt;ID;
	}
	if ($post_id) {
		$children = wp_list_pages(&quot;title_li=&amp;child_of=&quot;.$post_id.&quot;&amp;echo=0&quot;);
		if ($children) { ?&gt;
		&lt;div class=&quot;sub_box&quot;&gt;
		&lt;ul&gt;
			&lt;?php echo $children; ?&gt;
		&lt;/ul&gt;
		&lt;/div&gt;
		&lt;?php } ?&gt;
	&lt;?php } ?&gt;
&lt;?php } ?&gt;
</pre>
<p>自分（ページ）の祖先データを$post->ancestorsで返ってきた配列をループでまわします。そいて、一番最後の値が一番上に位置するページです。</p>
<p>そして最後の最後で嫌がらせのように（自分にとって）次のページを見つけました。<br />
参考（てゆーか答え）：<a href="http://ja.forums.wordpress.org/topic/1056">http://ja.forums.wordpress.org/topic/1056</a><br />
■最後の最後（引用させてもらいました）</p>
<pre class="brush: php; auto-links: false;" style="margin:18px 0;">
&lt;!-- 選択ページの最上位$ancestorを取得 --&gt;
&lt;?php $ancestor = array_pop(get_post_ancestors($post-&gt;ID)); ?&gt;
&lt;?php if(empty($ancestor)) { /*選択ページが最上位*/
　　　　　　wp_list_pages(&#039;depth=0&amp;child_of=&#039;.$post-&gt;ID.&#039;&amp;title_li=&#039;);}
else { /*選択ページが最上位以外*/
　　　　　　wp_list_pages(&#039;depth=0&amp;child_of=&#039;.$ancestor.&#039;&amp;title_li=&#039;);}?&gt;
</pre>
<p>以上、関数を知らないと大変なことになりますね。orz</p>
]]></content:encoded>
			<wfw:commentRss>http://letsusewordpress.com/archives/189/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wp_postsのguidがデモサイトのまま。エクスポート→インポートで失敗。</title>
		<link>http://letsusewordpress.com/archives/238</link>
		<comments>http://letsusewordpress.com/archives/238#comments</comments>
		<pubDate>Thu, 02 Apr 2009 14:13:23 +0000</pubDate>
		<dc:creator>ジェイ</dc:creator>
				<category><![CDATA[コード]]></category>
		<category><![CDATA[テーマカスタマイズ]]></category>

		<guid isPermaLink="false">http://letsusewordpress.com/?p=238</guid>
		<description><![CDATA[制作をする時、本番環境以外を使いますよね。レビューなんかにももちろん使う。そして、OK後に本番環境へ移行させるわけですが皆さんどうしているんでしょうか。
もっぱら私はwordpressの機能であるエクスポート→インポート [...]]]></description>
			<content:encoded><![CDATA[<p>制作をする時、本番環境以外を使いますよね。レビューなんかにももちろん使う。そして、OK後に本番環境へ移行させるわけですが皆さんどうしているんでしょうか。</p>
<p>もっぱら私はwordpressの機能であるエクスポート→インポートを行います。</p>
<p>昔は知りませんが今の（wordpress2.7.1）機能で十分なわけです。<br />
手間があるとしたら「リンク」のデータが移らないくらいでしょうか。それも、「リンク」自体使わないか、使っても少しだったので気にするレベルではなかったです。<br />
それよりも、インポートを使うと、画像データをダウンロードして持ってきてくれるという機能が非常に便利で手放せません。しかもサムネイル画像までも持ってきてくれました。</p>
<p>しかし最近、躓きました。</p>
<p><span id="more-238"></span></p>
<p>次のような箇所があったのですが</p>
<pre class="brush: php; auto-links: false;" style="margin:18px 0;">
&lt;?php
$posts = get_posts(&#039;post_type=page&amp;post_parent=3&#039;);
if (posts) {
  foreach ($posts as $child) {
  &lt;a href=&quot;&lt;?php echo $post-&gt;guid; ?&gt;&quot;&gt;詳細はコチラ&lt;/a&gt;
 }
}
?&gt;
</pre>
<p>がデモサイトのままでした。ブラウザのキャッシュかとも思いましたが違いました。あまり触れないできたデータベースを直接のぞいてみると、見つけました！</p>
<p>テーブル：wp_posts<br />
フィールド：guid</p>
<p>がデモサイトのままでした。</p>
<p>私の理想としては、「データベース」と「WP本体」のコードは触れないことでしたがそうも言えない状況になってましたので、直接SQLで対処しました。</p>
<pre class="brush: sql; auto-links: false;" style="margin:18px 0;">
UPDATE wp_posts
SET guid = REPLACE(guid,&#039;http://demo.example.com/&#039;,&#039;http://www.example.com/&#039;)
WHERE guid LIKE &#039;%http://demo.example.com/%&#039;
</pre>
<p>これでなんとか問題はなくなりました。が、一番手っ取り早い移行（移転）の方法はどうすればいいんでしょうね。</p>
]]></content:encoded>
			<wfw:commentRss>http://letsusewordpress.com/archives/238/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Archives for a categoryで解決！wp_get_archivesでカテゴリー別・年別アーカイブって出来ないのか・・・</title>
		<link>http://letsusewordpress.com/archives/234</link>
		<comments>http://letsusewordpress.com/archives/234#comments</comments>
		<pubDate>Wed, 01 Apr 2009 13:04:15 +0000</pubDate>
		<dc:creator>ジェイ</dc:creator>
				<category><![CDATA[テーマカスタマイズ]]></category>
		<category><![CDATA[プラグイン]]></category>
		<category><![CDATA[カテゴリ]]></category>
		<category><![CDATA[サイドバー]]></category>

		<guid isPermaLink="false">http://letsusewordpress.com/?p=234</guid>
		<description><![CDATA[会社のサイト等をページ主体で構成していくことが多いですが、「お知らせ」や「ニュース」といったものは投稿で実装することがほとんどです。（というほどたくさん作ったわけではないのですが・・・）
そういうとき、「お知らせ」のバッ [...]]]></description>
			<content:encoded><![CDATA[<p>会社のサイト等をページ主体で構成していくことが多いですが、「お知らせ」や「ニュース」といったものは投稿で実装することがほとんどです。（というほどたくさん作ったわけではないのですが・・・）</p>
<p>そういうとき、「お知らせ」のバックナンバーページのサイドバーに「お知らせ」だけの年別や年月別のアーカイブリストを出したい、という要件が自然とあがってきます。</p>
<p>これで引っかかりました。今も一部解決、一部未解決です。その課題を忘れないように解決した方法と合わせてまとめました。</p>
<p><span id="more-234"></span></p>
<p>はじめ、wp_get_archivesという関数があったためパラメーターを渡すだけかと思ってましたが、そんなパラメーターはないもようです。</p>
<p>wordpress本体のコードを読み解いたわけではないですが、ネットの情報ではなさそうでした。WP2.7.1です。</p>
<p>そういうわけでプラグインを検索。探し方が悪いのか、そもそも違うアプローチで実現しているのか・・・、なかなか見つかりませんでした。</p>
<p>しかし、需要がありそうな機能ですので頑張って探してみると、外国の方が作ってらっしゃいました。Thank You!</p>
<p>そのプラグインがこちら↓</p>
<p>プラグイン名：Archives for a category</p>
<p>サイト：<a href="http://kwebble.com/blog/2007_08_15/archives_for_a_category">http://kwebble.com/blog/2007_08_15/archives_for_a_category</a></p>
<p>最新バージョンの1.4が2009年2月22日なので安心です。</p>
<p>機能としては、wordpressのwp_get_archives関数にカテゴリーを引数として渡すことが出来るようになるようです。</p>
<p>使い方はこちら。</p>
<pre class="brush: php; auto-links: false;" style="margin:18px 0;">
/*デフォルトの月別アーカイブでカテゴリーIDの1を指定*/
&lt;?php wp_get_archives(&#039;cat=1&#039;); ?&gt;

/*カテゴリーIDの1と3を指定*/
&lt;?php wp_get_archives(&#039;cat=1,3&#039;); ?&gt;

/*カテゴリーIDの2のみを除く*/
&lt;?php wp_get_archives(&#039;cat=-2&#039;); ?&gt;

/*カテゴリーIDの2と8を除く*/
&lt;?php wp_get_archives(&#039;cat=-2,-8&#039;); ?&gt;

/*ドロップダウンでカテゴリーIDの1を表示*/
&lt;?php wp_get_archives(&#039;format=option&amp;cat=1&#039;); ?&gt;

/*年別でカテゴリーIDの1を表示*/
&lt;?php wp_get_archives(&#039;type=yearly&amp;cat=1&#039;); ?&gt;
</pre>
<p>一番下以外はプラグインの作者サイトからのものを、たぶんこんな意味というレベルで訳したものです。<br />
一番下のものが自分で実際に使ったコード。こんなふうに、wp_get_archivesがもつ通常のパラメーターにcatが追加できるようになります。</p>
<p>作者様には本当に感謝です。</p>
<p>そして、一部未解決の部分とは、nifty hosting サービスで起こりました。いや起こってます。</p>
<p>おそらくですが、怪しいとにらんでいるのは、niftyではhtaccessでmod_rewriteが使えないとのこと。実際にサポートに電話で確認しました。別サービスでもないのですか？という問い合わせには、ラクーカンというサービスがあるが、これはそもそもapacheではないので・・・、というご回答。<br />
niftyでのmod_rewriteは無理という結論でした。</p>
<p>これが原因なのでしょうか。まだ未解決です。解決次第更新しましょう。</p>
]]></content:encoded>
			<wfw:commentRss>http://letsusewordpress.com/archives/234/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>get_query_varと親カテゴリーを探す再帰関数を作って特定カテゴリの以下のカテゴリ一覧を表示する方法</title>
		<link>http://letsusewordpress.com/archives/75</link>
		<comments>http://letsusewordpress.com/archives/75#comments</comments>
		<pubDate>Sat, 28 Mar 2009 09:40:39 +0000</pubDate>
		<dc:creator>ジェイ</dc:creator>
				<category><![CDATA[テーマカスタマイズ]]></category>
		<category><![CDATA[カテゴリ]]></category>

		<guid isPermaLink="false">http://letsusewordpress.com/?p=75</guid>
		<description><![CDATA[以前の　『get_query_varが肝？サイドバーに子カテゴリーの一覧だけを表示させたい』　から引き続き、特定カテゴリー以下のサブカテゴリーリストを表示させる方法をまとめました。
以前のやり方だと、どうしても自分から下 [...]]]></description>
			<content:encoded><![CDATA[<p>以前の　『<a href="http://letsusewordpress.com/archives/176">get_query_varが肝？サイドバーに子カテゴリーの一覧だけを表示させたい</a>』　から引き続き、特定カテゴリー以下のサブカテゴリーリストを表示させる方法をまとめました。<br />
以前のやり方だと、どうしても自分から下のサブカテゴリーリストしか取得できなかった。</p>
<p>まず、付け焼刃的に解決させたコードがこれ。</p>
<p><span id="more-75"></span></p>
<pre class="brush: php; auto-links: false;" style="margin:18px 0;">
&lt;?php
$cat_id = get_query_var(&#039;cat&#039;);
if($cat_id-&gt;parent)
$children = wp_list_categories(&#039;title_li=&amp;child_of=&#039;.$cat_id.&#039;&amp;echo=0&#039;); else
$children = wp_list_categories(&#039;title_li=&amp;child_of=&#039;.$cat_id-&gt;parent.&#039;&amp;echo=0&#039;); else
if ($children != &quot;&lt;li&gt;カテゴリーなし&lt;/li&gt;&quot;) { ?&gt;
&lt;div&gt;
&lt;h3&gt;ブログカテゴリ&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&quot;frame_body&quot;&gt;
&lt;ul&gt;
&lt;?php echo $children; ?&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;?php } ?&gt;
</pre>
<p>このコードでは、自分より親カテゴリーが存在したら、その親がもつ全てのサブカテゴリーを表示するようにしました。<br />
これで、前回エントリーにある3階層の構成でも表示できるようになりました。</p>
<p>しかし、3階層を超えたらどうなるのか。4階層、5階層とwordpressの基本機能は作れるようになっています。</p>
<p>そこで、親カテゴリーを再帰的に取得するように関数を作ってみました。<br />
実際には、その関数はテーマごとにもてる「functions.php」にもたせています。</p>
<p>【functions.php】</p>
<pre class="brush: php; auto-links: false;" style="margin:18px 0;">
function luwp_get_category_top_id($cat_id) {
	if($cat_id != 0){
		$cat = get_category($cat_id);
		if($cat-&gt;category_parent){
			$parent = get_category($cat-&gt;category_parent);
			if($parent-&gt;term_id != 0){
				$cat_id = $parent-&gt;term_id;
				$cat_id = luwp_get_category_top_id($cat_id);
			}
		}
	}
	return $cat_id;
}
</pre>
<p>【sidebar.php】</p>
<pre class="brush: php; auto-links: false;" style="margin:18px 0;">
&lt;?php
$cat_id = get_query_var(&#039;cat&#039;);
$cat_id = luwp_get_category_top_id($cat_id);
if ($cat_id != &quot;&quot;){
	$children = wp_list_categories(&#039;orderby=order&amp;title_li=&amp;child_of=&#039;.$cat_id.&#039;&amp;hide_empty=0&amp;echo=0&#039;);
	if ($children != &quot;&lt;li&gt;カテゴリーなし&lt;/li&gt;&quot;) {
?&gt;
	&lt;h3&gt;メニュー&lt;/h3&gt;
&lt;div&gt;
	&lt;ul&gt;
	&lt;?php echo $children; ?&gt;
	&lt;/ul&gt;
&lt;/div&gt;
&lt;?php } else { ?&gt;
&lt;?php } ?&gt;
&lt;?php } ?&gt;
</pre>
<p>これで、カテゴリーが何階層になっていても、自分が所属するカテゴリーの一番上のカテゴリーまで辿り、それ以下全てのサブカテゴリーを表示させることが可能になりました。</p>
<p>やっと汎用的になりましたかね。</p>
]]></content:encoded>
			<wfw:commentRss>http://letsusewordpress.com/archives/75/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>get_query_varが肝？サイドバーに子カテゴリーの一覧だけを表示させたい</title>
		<link>http://letsusewordpress.com/archives/176</link>
		<comments>http://letsusewordpress.com/archives/176#comments</comments>
		<pubDate>Fri, 27 Mar 2009 14:38:44 +0000</pubDate>
		<dc:creator>ジェイ</dc:creator>
				<category><![CDATA[テーマカスタマイズ]]></category>

		<guid isPermaLink="false">http://letsusewordpress.com/?p=176</guid>
		<description><![CDATA[サイドバーにカテゴリー一覧を表示させる、という要件はビジネスサイトとしては必須ともいうべき内容だと思います。
ビジネスサイトでよく見るタイプは、ヘッダー部分に一番上のカテゴリ（ここではトップカテゴリと呼ぶ）だけを表示し、 [...]]]></description>
			<content:encoded><![CDATA[<p>サイドバーにカテゴリー一覧を表示させる、という要件はビジネスサイトとしては必須ともいうべき内容だと思います。</p>
<p>ビジネスサイトでよく見るタイプは、ヘッダー部分に一番上のカテゴリ（ここではトップカテゴリと呼ぶ）だけを表示し、トップカテゴリをクリックすることで、そのカテゴリページに遷移します。そしてそのカテゴリーページには、そのカテゴリーがもつサブカテゴリー全てをサイドバーに表示します。これをwordpressでも実現したい。</p>
<p>というわけで調査。</p>
<p><span id="more-176"></span></p>
<p>最初、探そうにも何をキーワードにすれば良いのかさえも分からず、見つけたコードを組み合わせて次のようなコードを作ってみた。</p>
<pre class="brush: php; auto-links: false;" style="margin:18px 0;">
$cat = get_the_category();
$cat = $cat[0];
$children = wp_list_categories(&#039;title_li=&amp;child_of=&#039;.$cat-&gt;cat_ID.&#039;&amp;echo=0&#039;);
if ($children != &quot;&lt;li&gt;カテゴリーなし&lt;/li&gt;&quot;) {
&lt;div id=&quot;nav_box&quot;&gt;
&lt;h3&gt;ブログカテゴリ&lt;/h3&gt;
&lt;ul&gt;
&lt;?php echo $children; ?&gt;
&lt;/ul&gt;
&lt;/div&gt;
</pre>
<p>一度動作させてみたところたまたま上手く行ったもののこれでは駄目でした。今となっては何で一回でも上手くいったのか不思議なぐらいですが（キャッシュ関係の仕業か、私のまとめミス？）、サイドバーで使うにはまったくもって不十分でした。記事が複数カテゴリーに関連付けされていたら、どのカテゴリーに特定させるのかが不定になるからです。</p>
<p>それからもっと調べたところ、下記フォーラムがとても参考になりました。というよりどんぴしゃです。なぜ最初にこれで出会わなかったのだろうか・・・。検索力のなさにがっかりしました。</p>
<p>参考：<a href="http://ja.forums.wordpress.org/topic/396">http://ja.forums.wordpress.org/topic/396</a></p>
<p>これを参考に、以下のコードを作成しました。</p>
<pre class="brush: php; auto-links: false;" style="margin:18px 0;">
&lt;?php
$cat_id = get_query_var(&#039;cat&#039;);
$children = wp_list_categories(&#039;title_li=&amp;child_of=&#039;.$cat_id.&#039;&amp;echo=0&#039;);
if ($children != &quot;&lt;li&gt;カテゴリーなし&lt;/li&gt;&quot;) { ?&gt;
&lt;div&gt;
&lt;h3&gt;ブログカテゴリ&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&quot;frame_body&quot;&gt;
&lt;ul&gt;
&lt;?php echo $children; ?&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;?php } ?&gt;
</pre>
<p>以下のような階層構造の場合をだと<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
カテゴリーA<br />
 ┣カテゴリーB<br />
 ┣カテゴリーC<br />
 ┃　　┣カテゴリーD<br />
 ┣カテゴリーE<br />
 ┗カテゴリーF<br />
 ┃　　┗カテゴリーG<br />
カテゴリーH<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>カテゴリーAのページのサイドバー<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
 カテゴリーB<br />
 カテゴリーC<br />
 　　┣カテゴリーD<br />
 カテゴリーE<br />
 カテゴリーF<br />
 　　┗カテゴリーG<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>さらに、カテゴリーCのページのサイドバー<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
カテゴリーD<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>このコードで指定したカテゴリーのサブカテゴリー一覧が表示されるようになりました。</p>
<p>また、カテゴリーAのページのサイドバーで、次のように<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
 カテゴリーB<br />
 カテゴリーC<br />
 カテゴリーE<br />
 カテゴリーF<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
子カテゴリーのみ、つまり孫カテゴリー以下を出したくない場合はコードを次のように変更すればOKです。</p>
<pre class="brush: php; first-line: 2; auto-links: false;" style="margin:18px 0;">
$children = wp_list_categories(&#039;title_li=&amp;child_of=&#039;.$cat_id.&#039;&amp;echo=0&amp;depth=1&#039;);
</pre>
<p>ですがまだ大きな問題が残ってます。上の例の時点でその問題が見られます。<br />
その問題とは、カテゴリーCのページのサイドバーを見て分かるように、自分より下の階層しか表示しないということです。親のもつカテゴリーを表示しない。</p>
<p>このままでは3層以上の構成になった場合、最初の要件「あるトップカテゴリー以下のサブカテゴリ全てを表示したい」を満たせません。</p>
<p>表示上の例でいうと、カテゴリーCのページのサイドバーの時でも、カテゴリーAのページのサイドバーを表示させるという事ですが、この解決は別のエントリーでまとめたいと思います。</p>
<p>PS.<br />
しょっぱなの「get_query_var」ってクエリストリングを読んでるのではないか？と。<br />
つまり、getで渡ってきてる値（例：　http://letsusewordpress.com/?cat=3　の3）を取ってきてる？</p>
<p>というわけで、wordpressのパーマリンク設定で数字ページに変更。動作を確認したところ無事動いてました。</p>
<p>よかった。</p>
]]></content:encoded>
			<wfw:commentRss>http://letsusewordpress.com/archives/176/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>wordpressのDefaultテンプレートの幅を広げてみた</title>
		<link>http://letsusewordpress.com/archives/107</link>
		<comments>http://letsusewordpress.com/archives/107#comments</comments>
		<pubDate>Tue, 24 Mar 2009 12:19:47 +0000</pubDate>
		<dc:creator>ジェイ</dc:creator>
				<category><![CDATA[フリーテーマ]]></category>

		<guid isPermaLink="false">http://letsusewordpress.com/?p=107</guid>
		<description><![CDATA[wordpressに同梱されているテーマの一つ、Default。
テーマの勉強に、テストサイト立ち上げのデモに、ととても重宝しています。
特にテーマの勉強には最適かと思ってます。（多言語化とかまだまだ把握してませんが・・ [...]]]></description>
			<content:encoded><![CDATA[<p>wordpressに同梱されているテーマの一つ、Default。</p>
<p>テーマの勉強に、テストサイト立ち上げのデモに、ととても重宝しています。<br />
特にテーマの勉強には最適かと思ってます。（多言語化とかまだまだ把握してませんが・・・）</p>
<p><span id="more-107"></span></p>
<p>とはいえ、最近のサイトと比べると、どうもサイズが一回り小さく感じています。<br />
もっと大きいサイズのテーマを使えばって話なんですが、Defaultを拡幅したほうが速いんじゃないかと思い、拡幅しました。</p>
<p>当サイトもその拡幅したDefault950を利用しています。</p>
<p>そして、どれだけの方が欲しがるかさっぱり分かりませんが、ここにそれをダウンロード出来るようにしました。<br />
※こうやって公開するのって自分の勉強に身が入りますね。</p>
<ul>
<li><a href="http://letsusewordpress.com/wp-content/uploads/default950.zip">default950</a> 幅950px　[yahooサイズに合わせてみました]</li>
<li><a href="http://letsusewordpress.com/wp-content/uploads/default840.zip">default840</a> 幅840px　[↑を一回り小さくしてみました]</li>
</ul>
<p>の二つです。</p>
<p>よかったらご利用下さい。</p>
<p>それと、さくっと作業したのでサイズ調整でおかしなところがあるかもしれません。</p>
<p>あればご指摘下さいね。</p>
<p>・・・と書いてみたものの、ライセンス的には問題なかったかな。この点、ただいま勉強中。</p>
]]></content:encoded>
			<wfw:commentRss>http://letsusewordpress.com/archives/107/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ソースコードのハイライト表示プラグインを比較</title>
		<link>http://letsusewordpress.com/archives/95</link>
		<comments>http://letsusewordpress.com/archives/95#comments</comments>
		<pubDate>Mon, 19 Jan 2009 11:37:33 +0000</pubDate>
		<dc:creator>ジェイ</dc:creator>
				<category><![CDATA[プラグイン]]></category>

		<guid isPermaLink="false">http://letsusewordpress.com/?p=95</guid>
		<description><![CDATA[このサイトでソースを掲載する場合にハイライト表示したいと考えました。
よく見かけるやつです。
wordpressのプラグインを探したところいくつかみつかりました。

１．http://wordpress.org/exte [...]]]></description>
			<content:encoded><![CDATA[<p>このサイトでソースを掲載する場合にハイライト表示したいと考えました。<br />
よく見かけるやつです。</p>
<p>wordpressのプラグインを探したところいくつかみつかりました。</p>
<p><span id="more-95"></span></p>
<p>１．http://wordpress.org/extend/plugins/syntaxhighlighter/<br />
２．http://wordpress.org/extend/plugins/syntaxhighlighter-plus/<br />
３．http://wppluginsj.sourceforge.jp/syntax-highlighter/<br />
４．http://wp.mmrt-jp.net/plugin-japanization-project/ig_syntax_hilite/</p>
<p>どれがいいものか困りました。<br />
１．２．は公式サイトに登録されているし、２．はwordpressの日本語プラグインを開発・紹介する有名なサイト、３．も最近の更新履歴があるようだし・・・。</p>
<p>そいうわけで試してみました。</p>
<p>１．は公式サイトに載ってたので期待大。<br />
さっそく有効化。設定は・・・と、ないみたいね。んじゃ早速利用してみよう。<br />
うん。悪くない。というか、巷でよくみるやつですね。でも、コードをハイライト表示させる時、<br />
［code=&#8217;css&#8217;］code here［/code］<br />
のように記述する必要があるみたい。<br />
※注意　［は全角で表示してます。実際は半角です。</p>
<p>２．も公式サイトに載ってたので期待大。<br />
さっそく有効化。こちらも設定はなし、と。<br />
１．のplusだけあって変わりなし。個人的に良くなったと感じたのは、<br />
［php］code here［/php］<br />
と簡略化されたこと。<br />
他に、公式サイトからのリンクで</p>
<p>http://alexgorbatchev.com/wiki/SyntaxHighlighter:Themes</p>
<p>ここにあるようにデザインの雛形もあるのかな・・・？<br />
※注意　［は全角で表示してます。実際は半角です。</p>
<p>３．これも期待大。<br />
紹介されてるサイトはktai_styleというwordpressのモバイル対応プラグインを作成している有名なところ。<br />
こちらも設定はないようだ。<br />
コードをハイライト表示させるときは<br />
［code=&#8217;css&#8217;］code here［/code］<br />
でも<br />
［php］code here［/php］<br />
でいいみたい。こっちの方がすっきり。それに、引数に［php num=10］とかすると、行番号が10から出来るすぐれもの。他にも引数多数。<br />
※注意　［は全角で表示してます。実際は半角です。</p>
<p>４．こちらは設定がでてきた。<br />
管理メニューの設定の中に。とはいえ、その設定を使っても他と比べて表示の装飾が好みではありませんでした。それに、言語ファイルをpluginsフォルダ直下に展開するようで、管理の面でもあまりキモチよくない。</p>
<p>※注意　どのプラグインにせよ、投稿記事を書く場合、ビジュアルエディタをつかうと失敗するようです。装飾が必要な場合は、先にビジュアルエディタで作りこみ、最後にHTMLエディタでコードを追加するか、HTMLエディタのみでタグ記述をするか、となりますね。</p>
<p>というわけで、２か３が候補。<br />
深く調査したわけではないので２と３で出来ることは結局同じになるかもしれません。<br />
少し迷いましたが、３に決定。</p>
<p>やはりwordpress対応化にされた作者が日本人で、WordPress Plugins/JSeries というブランドが決めてですかね。</p>
<p>でもなんにせよプラグインを開発・公開されている方は尊敬に値します。</p>
]]></content:encoded>
			<wfw:commentRss>http://letsusewordpress.com/archives/95/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>カテゴリーの並び順を変更できるプラグイン－「My Category Order」</title>
		<link>http://letsusewordpress.com/archives/30</link>
		<comments>http://letsusewordpress.com/archives/30#comments</comments>
		<pubDate>Wed, 14 Jan 2009 02:06:15 +0000</pubDate>
		<dc:creator>ジェイ</dc:creator>
				<category><![CDATA[プラグイン]]></category>

		<guid isPermaLink="false">http://letsusewordpress.com/?p=30</guid>
		<description><![CDATA[このエントリー現在の最新版である、WordPress2.7の基本機能にはカテゴリーの並び順を変えたい場合、コードに直接記述する方法しかなく、しかも3種類の方法しかないようです。
そこで、プラグインを用いて並び順を自由に行 [...]]]></description>
			<content:encoded><![CDATA[<p>このエントリー現在の最新版である、WordPress2.7の基本機能にはカテゴリーの並び順を変えたい場合、コードに直接記述する方法しかなく、しかも3種類の方法しかないようです。</p>
<p>そこで、プラグインを用いて並び順を自由に行えるようにできないかと探したところ、以下のプラグインが見つかりました。</p>
<p><span id="more-30"></span></p>
<p><a href="http://www.coppit.org/code/"><strong>CategoryOrder</strong></a><strong> （http://www.coppit.org/code/）</strong></p>
<p><a href="http://wordpress.org/extend/plugins/my-category-order/"><strong>MyCategoryOrder</strong></a><strong> （http://wordpress.org/extend/plugins/my-category-order/）</strong></p>
<p>この中でどれが良いか検討していたところ、次のサイトをみつけました。</p>
<p><a href="http://www.hello-wordpress.com/?p=55">カテゴリの並び順を変えるプラグイン</a></p>
<p>↑でもいわれているように、個人的には「MyCategoryOrdre」が良いと感じてます。</p>
<p>理由は同様で、「CategoryOrder」のほうは更新が最近ないみたいだからです。</p>
<p>ただし、「MyCategoryOrdre」では、プラグインファイル以外に「taxonomy.php」に書き込み権限を与えるか、マニュアルでコードを追加する必要があり、WP本体のバージョンアップ時など注意が必要。</p>
<p>以下、「MyCategoryOrdre」を導入した場合に少し引っかかった点。</p>
<p>MyCategoryOrderを利用するために、テンプレートを変更した場合。</p>
<p>並び順を有効にするには、プラグインを有効化するだけでなく、一度、「MyCategoryOrdre」のページで設定を保存する必要がありました。</p>
<p>追記：参考サイト　http://hsuzuki.ddo.jp/weblog/?p=487</p>
]]></content:encoded>
			<wfw:commentRss>http://letsusewordpress.com/archives/30/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>アクセス解析－Ultimate Google Analytics</title>
		<link>http://letsusewordpress.com/archives/21</link>
		<comments>http://letsusewordpress.com/archives/21#comments</comments>
		<pubDate>Wed, 07 Jan 2009 14:56:20 +0000</pubDate>
		<dc:creator>ジェイ</dc:creator>
				<category><![CDATA[プラグイン]]></category>
		<category><![CDATA[アクセス解析]]></category>

		<guid isPermaLink="false">http://letsusewordpress.com/?p=21</guid>
		<description><![CDATA[ブログっぽくないサイトだろうとなんだろうと、アクセス解析は基本ですよね。たとえアクセス数があまりないと分かっていても、備えよ常に、ということで。
また、アクセス記録はある意味、そのサイトの歴史を振り返れる材料にもなります [...]]]></description>
			<content:encoded><![CDATA[<p>ブログっぽくないサイトだろうとなんだろうと、アクセス解析は基本ですよね。たとえアクセス数があまりないと分かっていても、備えよ常に、ということで。</p>
<p>また、アクセス記録はある意味、そのサイトの歴史を振り返れる材料にもなりますので。</p>
<p>そういうわけで、私が利用するのは、アクセス解析のデファクトスタンダードではないかと思う、Google Analyticsです。</p>
<p><span id="more-21"></span></p>
<p>それをWordPressへ簡単導入するプラグインがこちら。</p>
<p><a title="Ultimate Google Analytics" onclick="javascript:urchinTracker ('/outgoing/www.oratransplant.nl/uga/');" href="http://www.oratransplant.nl/uga/">Ultimate Google Analytics</a><a title="Ultimate Google Analytics" href="http://www.oratransplant.nl/uga/">（http://www.oratransplant.nl/uga/）</a></p>
<p>このエントリー現在、Ver1.6が最新のようです。</p>
<p>導入方法は・・・こちらを参考にしました。<br />
参考1.　<a title="WordPress プラグイン「Ultimate Google Analytics」" href="http://ppmweb.lolipop.jp/wordpress-plugin-ultimate-google-analytics/">WordPress プラグイン「Ultimate Google Analytics」</a></p>
<p>参考2.　<a title="高機能アクセス解析 Google Analyticsを簡単に導入できるプラグイン Ultimate Google Analytics" href="http://wordpressgogo.com/plugin/plugin_ultimate_google_analytics.html">高機能アクセス解析 Google Analyticsを簡単に導入できるプラグイン Ultimate Google Analytics</a></p>
<p>補足画像</p>
<p>プラグインを有効化にした後は、下図のようにメニューの「設定」の中に「Ultimate GA」が表示され、ここで設定を行います。</p>
<p><img class="alignnone size-full wp-image-27" title="ws000001" src="http://letsusewordpress.com/wp-content/uploads/ws000001.jpg" alt="ws000001" width="169" height="379" /></p>
<p>実験環境：coreserver、WP2.7</p>
]]></content:encoded>
			<wfw:commentRss>http://letsusewordpress.com/archives/21/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
