<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom">
    <title>WEBプログラム覚書</title>
    <link rel="alternate" type="text/html" href="http://www.kantenna.com/pg/" />
    <link rel="self" type="application/atom+xml" href="" />
    <id>tag:www.kantenna.com,2011-12-18:/pg//7</id>
    <updated>2012-02-15T01:51:30Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 5.04</generator>

<entry>
    <title>[WordPress] get_header()とwp_head()を捨てる。</title>
    <link rel="alternate" type="text/html" href="http://www.kantenna.com/pg/2012/02/wordpress_header.php" />
    <id>tag:www.kantenna.com,2012:/pg//7.1269</id>

    <published>2012-02-14T19:19:27Z</published>
    <updated>2012-02-15T01:51:30Z</updated>

    <summary>WordPressでget_header()とwp_head()を捨ててみるとどうなる？</summary>
    <author>
        <name>caquu</name>
        <uri>http://www.kantenna.com/</uri>
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="wordpress" label="WordPress" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.kantenna.com/pg/">
        <![CDATA[<p>
捨てることで何かメリットがあるかと言うと残念ながら特にありませんので、この内容をオススメしてるわけではありません。
</p>
]]>
        <![CDATA[<p>
僕はWordPressらしさ?を求められる場合は別ですが、個人的に利用する場合はget_header()、wp_head()は使いません。
理由としてはフロントに干渉しすぎでウザいのとプラグインに頼らず生きていく術を身につけるためです。
</p>

<p>
といってもwp_head()は公開サイト用の関数なので標準的なサイト制作の能力がある人であれば、ほとんど困ることはないんじゃないでしょうか。
</p>

<p>
というわけでget_header()とwp_head()は捨てて<a href="http://book.cakephp.org/1.3/ja/view/1081/%E3%82%A8%E3%83%AC%E3%83%A1%E3%83%B3%E3%83%88">CakePHPのエレメント</a>っぽくしてみます。
</p>


<h3>header.phpとfooter.php</h3>
<p>
header.phpとfooter.phpはこんな感じにしておきます。
</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">header.php</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> </span><span class="hl-brackets">&lt;</span><span class="hl-code">!</span><span class="hl-var">DOCTYPE</span><span class="hl-code"> </span><span class="hl-var">html</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">html</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">head</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">meta</span><span class="hl-code"> </span><span class="hl-var">charset</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">utf-8</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-brackets">/&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">title</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;?</span><span class="hl-reserved">php</span><span class="hl-code"> </span><span class="hl-var">echo</span><span class="hl-code"> </span><span class="hl-var">isset</span><span class="hl-code">($</span><span class="hl-var">title</span><span class="hl-code">) ? $</span><span class="hl-var">title</span><span class="hl-code"> . ' &amp;</span><span class="hl-var">lt</span><span class="hl-code">; '</span><span class="hl-var">:</span><span class="hl-code"> ''; </span><span class="hl-brackets">?&gt;</span><span class="hl-code">WordPress3.3.1日本語版</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">title</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">link</span><span class="hl-code"> </span><span class="hl-var">rel</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">stylesheet</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">type</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">text/css</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">media</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">all</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">http://331.wordpress.com/wp-content/themes/default/style.css</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-brackets">/&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;?</span><span class="hl-reserved">php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-var">if</span><span class="hl-code"> (</span><span class="hl-var">isset</span><span class="hl-code">($</span><span class="hl-var">page_css</span><span class="hl-code">)) {</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-var">printf</span><span class="hl-code">('&lt;</span><span class="hl-reserved">link</span><span class="hl-code"> </span><span class="hl-var">rel</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">stylesheet</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">type</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">text/css</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">media</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">all</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">http://331.wordpress.com/wp-content/themes/default/%s.css</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-brackets">/&gt;</span><span class="hl-code">' . PHP_EOL, $page_css);</span></li>
<li><span class="hl-code">&nbsp;}</span></li>
<li><span class="hl-code">&nbsp;?&gt;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">link</span><span class="hl-code"> </span><span class="hl-var">rel</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">pingback</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">&lt;?php bloginfo( 'pingback_url' ); ?&gt;</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-brackets">/&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;?</span><span class="hl-reserved">php</span><span class="hl-code"> </span><span class="hl-var">do_action</span><span class="hl-code">('</span><span class="hl-var">my_wp_head</span><span class="hl-code">'); </span><span class="hl-brackets">?&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">head</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">body</span><span class="hl-brackets">&gt;</span></li></ol></div>
            </div></div>
            
<p>do_action('my_wp_head')は保険で付けてるだけなので無くてもいいです。</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">footer.php</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">body</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">html</span><span class="hl-brackets">&gt;</span></li></ol></div>
            </div></div>
            
<h3>functions.php</h3>
<p>でfunctions.phpにはget_header()の代わりに使うWP_MyUtil::load()を定義しときます。</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">functions.php</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">class</span><span class="hl-code"> </span><span class="hl-identifier">WP_MyUtil</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-comment">/*</span><span class="hl-comment">*</span></li>
<li><span class="hl-comment">&nbsp;     * ファイルの場所。基本的にTEMPLATEPATH</span></li>
<li><span class="hl-comment">&nbsp;     *</span><span class="hl-inlinedoc"> @var </span><span class="hl-comment">string</span></li>
<li><span class="hl-comment">&nbsp;     </span><span class="hl-comment">*/</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-var">$include_path</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">__construct</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">include_path</span><span class="hl-code"> = </span><span class="hl-identifier">dirname</span><span class="hl-brackets">(</span><span class="hl-reserved">__FILE__</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-comment">/*</span><span class="hl-comment">*</span></li>
<li><span class="hl-comment">&nbsp;     * ファイル読み込み用のメソッド</span></li>
<li><span class="hl-comment">&nbsp;     *</span></li>
<li><span class="hl-comment">&nbsp;     *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">string $type elements</span></li>
<li><span class="hl-comment">&nbsp;     *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">string $filename filename</span></li>
<li><span class="hl-comment">&nbsp;     *</span><span class="hl-inlinedoc"> @return </span><span class="hl-comment">string</span></li>
<li><span class="hl-comment">&nbsp;     </span><span class="hl-comment">*/</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">load</span><span class="hl-brackets">(</span><span class="hl-var">$type</span><span class="hl-code">, </span><span class="hl-var">$filename</span><span class="hl-code">, </span><span class="hl-var">$vars</span><span class="hl-code"> = </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">switch</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-var">$type</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-reserved">case</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">elements</span><span class="hl-quotes">'</span><span class="hl-code">:</span></li>
<li><span class="hl-code">&nbsp;                </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">loadElements</span><span class="hl-brackets">(</span><span class="hl-var">$filename</span><span class="hl-code">, </span><span class="hl-var">$vars</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;                </span><span class="hl-reserved">break</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-comment">/*</span><span class="hl-comment">*</span></li>
<li><span class="hl-comment">&nbsp;     * PHPファイルの読み込み結果を返す。</span></li>
<li><span class="hl-comment">&nbsp;     *</span></li>
<li><span class="hl-comment">&nbsp;     *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">string $filename 読み込むファイル名</span></li>
<li><span class="hl-comment">&nbsp;     *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">array_type $vars 読み込むファイルで利用する変数</span></li>
<li><span class="hl-comment">&nbsp;     *</span><span class="hl-inlinedoc"> @throws </span><span class="hl-comment">Exception</span></li>
<li><span class="hl-comment">&nbsp;     *</span><span class="hl-inlinedoc"> @return </span><span class="hl-comment">string</span></li>
<li><span class="hl-comment">&nbsp;     </span><span class="hl-comment">*/</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">loadElements</span><span class="hl-brackets">(</span><span class="hl-var">$filename</span><span class="hl-code">, </span><span class="hl-var">$vars</span><span class="hl-code"> = </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-var">$path_to_file</span><span class="hl-code"> = </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">include_path</span><span class="hl-code"> . </span><span class="hl-reserved">DIRECTORY_SEPARATOR</span><span class="hl-code"> . </span><span class="hl-var">$filename</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-identifier">file_exists</span><span class="hl-brackets">(</span><span class="hl-var">$path_to_file</span><span class="hl-brackets">)</span><span class="hl-code"> &amp;&amp; </span><span class="hl-identifier">is_readable</span><span class="hl-brackets">(</span><span class="hl-var">$path_to_file</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-identifier">ob_start</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-identifier">extract</span><span class="hl-brackets">(</span><span class="hl-var">$vars</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-reserved">require_once</span><span class="hl-code"> </span><span class="hl-var">$path_to_file</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-identifier">ob_get_clean</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-reserved">else</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-reserved">throw</span><span class="hl-code"> </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">Exception</span><span class="hl-brackets">(</span><span class="hl-var">$path_to_file</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">が存在しないか読み込めません。</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">class</span><span class="hl-code"> </span><span class="hl-identifier">CallBacks</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-reserved">static</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">my_wp_head</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-comment">//</span><span class="hl-comment"> 本当に必要なものだけフックする。</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-comment">//</span><span class="hl-comment"> とりあえずエディタだけ表示してみる。</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-comment">//</span><span class="hl-comment">add_action( 'my_wp_head',             'wp_enqueue_scripts',              1     );</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-comment">//</span><span class="hl-comment">add_action( 'my_wp_head',             'feed_links',                      2     );</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-comment">//</span><span class="hl-comment">add_action( 'my_wp_head',             'feed_links_extra',                3     );</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-comment">//</span><span class="hl-comment">add_action( 'my_wp_head',             'rsd_link'                               );</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-comment">//</span><span class="hl-comment">add_action( 'my_wp_head',             'wlwmanifest_link'                       );</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-comment">//</span><span class="hl-comment">add_action( 'my_wp_head',             'adjacent_posts_rel_link_wp_head', 10, 0 );</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-comment">//</span><span class="hl-comment">add_action( 'my_wp_head',             'locale_stylesheet'                      );</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-comment">//</span><span class="hl-comment">add_action( 'my_wp_head',             'noindex',                          1    );</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-comment">//</span><span class="hl-comment">add_action( 'my_wp_head',             'wp_print_styles',                  8    );</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-comment">//</span><span class="hl-comment">add_action( 'my_wp_head',             'wp_print_head_scripts',            9    );</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-identifier">add_action</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">my_wp_head</span><span class="hl-quotes">'</span><span class="hl-code">,             </span><span class="hl-quotes">'</span><span class="hl-string">wp_generator</span><span class="hl-quotes">'</span><span class="hl-code">                           </span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-comment">//</span><span class="hl-comment">add_action( 'my_wp_head',             'rel_canonical'                          );</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-comment">//</span><span class="hl-comment">add_action( 'my_wp_head',             'wp_shortlink_wp_head',            10, 0 );</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-var">$wmu</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">WP_MyUtil</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-identifier">add_action</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">my_wp_head</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">CallBacks</span><span class="hl-code">::</span><span class="hl-identifier">my_wp_head</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<h3>home.php</h3>

<p>でhome.php。load()の第3引数で設定している連想配列のキーは、呼び出すファイル内で変数名として利用できます。</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">home.php</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> </span><span class="hl-brackets">&lt;?</span><span class="hl-reserved">php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-var">echo</span><span class="hl-code"> $</span><span class="hl-var">wmu-</span><span class="hl-brackets">&gt;</span><span class="hl-code">load('elements', 'header.php', array(</span></li>
<li><span class="hl-code">&nbsp;                                            'title'    =&gt; 'HOME',</span></li>
<li><span class="hl-code">&nbsp;                                            'page_css' =&gt; 'home'</span></li>
<li><span class="hl-code">&nbsp;                                          ));</span></li>
<li><span class="hl-code">&nbsp;?&gt;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;test</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;?</span><span class="hl-reserved">php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-var">echo</span><span class="hl-code"> $</span><span class="hl-var">wmu-</span><span class="hl-brackets">&gt;</span><span class="hl-code">load('elements', 'footer.php');</span></li>
<li><span class="hl-code">&nbsp;?&gt;</span></li></ol></div>
            </div></div>
            

<p>でもってホームにアクセスすると出力はこうなります。</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">home.php</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> </span><span class="hl-brackets">&lt;</span><span class="hl-code">!</span><span class="hl-var">DOCTYPE</span><span class="hl-code"> </span><span class="hl-var">html</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">html</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">head</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">meta</span><span class="hl-code"> </span><span class="hl-var">charset</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">utf-8</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-brackets">/&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">title</span><span class="hl-brackets">&gt;</span><span class="hl-code">HOME </span><span class="hl-special">&amp;lt;</span><span class="hl-code"> WordPress3.3.1日本語版</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">title</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">link</span><span class="hl-code"> </span><span class="hl-var">rel</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">stylesheet</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">type</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">text/css</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">media</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">all</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">http://331.wordpress.com/wp-content/themes/default/style.css</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-brackets">/&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">link</span><span class="hl-code"> </span><span class="hl-var">rel</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">stylesheet</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">type</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">text/css</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">media</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">all</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">http://331.wordpress.com/wp-content/themes/default/home.css</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-brackets">/&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">link</span><span class="hl-code"> </span><span class="hl-var">rel</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">pingback</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">http://331.wordpress.com/xmlrpc.php</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-brackets">/&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">meta</span><span class="hl-code"> </span><span class="hl-var">name</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">generator</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">content</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">WordPress 3.3.1</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-brackets">/&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">head</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">body</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;test</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">body</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">html</span><span class="hl-brackets">&gt;</span></li></ol></div>
            </div></div>
            
<p>
get_header()を利用するときと何が違うかというと、タイトルやロードするCSSをheader.phpで決定するのではなくhome.phpで決めてるという点です。
</p>

<h3>投稿ページでkeywordとdescriptionを表示したい場合</h3>

<p>header.phpに下記を追記します。</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">header.php</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-reserved">isset</span><span class="hl-brackets">(</span><span class="hl-var">$keyword</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-identifier">printf</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">&lt;meta name=&quot;keywords&quot; content=&quot;%s&quot; /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$keyword</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-reserved">isset</span><span class="hl-brackets">(</span><span class="hl-var">$desc</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-identifier">printf</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">&lt;meta name=&quot;description&quot; content=&quot;%s&quot; /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$desc</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>single.phpでのheader.phpの呼び出しを下記のように記述します。</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">single.php</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment"> カスタムフィールド</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-var">$_fields</span><span class="hl-code"> = </span><span class="hl-identifier">get_post_custom</span><span class="hl-brackets">(</span><span class="hl-brackets">(</span><span class="hl-identifier">int</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-var">$post</span><span class="hl-code">-&gt;</span><span class="hl-identifier">ID</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">echo</span><span class="hl-code"> </span><span class="hl-var">$wmu</span><span class="hl-code">-&gt;</span><span class="hl-identifier">load</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">elements</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">header.php</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                                            </span><span class="hl-quotes">'</span><span class="hl-string">title</span><span class="hl-quotes">'</span><span class="hl-code">    =&gt; </span><span class="hl-var">$post</span><span class="hl-code">-&gt;</span><span class="hl-identifier">post_title</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;                                            </span><span class="hl-quotes">'</span><span class="hl-string">page_css</span><span class="hl-quotes">'</span><span class="hl-code"> =&gt; </span><span class="hl-quotes">'</span><span class="hl-string">single</span><span class="hl-quotes">'</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;                                            </span><span class="hl-quotes">'</span><span class="hl-string">keywords</span><span class="hl-quotes">'</span><span class="hl-code"> =&gt; </span><span class="hl-var">$_fields</span><span class="hl-brackets">[</span><span class="hl-quotes">'</span><span class="hl-string">keyword</span><span class="hl-quotes">'</span><span class="hl-brackets">]</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;                                            </span><span class="hl-quotes">'</span><span class="hl-string">desc</span><span class="hl-quotes">'</span><span class="hl-code">     =&gt; </span><span class="hl-var">$_fields</span><span class="hl-brackets">[</span><span class="hl-quotes">'</span><span class="hl-string">desc</span><span class="hl-quotes">'</span><span class="hl-brackets">]</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                                          </span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>
で、投稿時にカスタムフィールドでkeywordとdescを設定すればOK。

</p>

<p>
これをちょっと応用すると特定の投稿でcssやjavascriptをロードすることも可能です。
</p>

<p>
テンプレートからheader.phpに変数を送ることでどういうことができるか見えますでしょうか。
できることに違いはないんですが、面倒だったことが意外とあっさりすっきりできる気がしません？
</p>

<h3>捨てることで得られるもの失われるもの。</h3>

<h4>得られるもの。</h4>
<ul>
<li>add_action()してremove_action()とか、excelを立ち上げては消す暇な上司みたいな無駄なことをしなくてよくなる。</li>
<li>is_home()、is_single()とかの条件分岐やら関数やらでアクセスしないとheader.phpの出力がわからないとかがなくなる。</li>
</ul>

<h4>失われるもの。</h4>
<ul>
<li>WordPressらしさ。フックしてなんぼのWordPressのなかでも重要なwp_head()を外す行為は他人にしたらいい迷惑。なので仕事では使えません。</li>
<li>便利なプラグインが使えない場合がある。</li>
</ul>

<p>ちなみにheader.phpとfooter.phpは自分のテーマ以外からも呼ばれることがあるのでそのことは意識した方がよいです。デフォルト値を設定しておくとか。</p>


<h3>この先。</h3>

<p>やらなくてもわかりますが、これはそれほどいいものではありませんw</p>

<p>
なのでもっと良くしようと進めていくと、やっぱり僕の大好きな<a href="http://www.kantenna.com/pg/2011/02/view_layout.php">ビューとレイアウトを分ける</a>に行きつきます。
誰かにプログラムをやって良かったことは？と聞かれたら、真っ先にビューとレイアウトを分ける方法を覚えられたことですと答えると思います。エンジニアのみなさん頭良すぎです。
</p>

<p>
ウェブ制作に携わる人は絶対覚えたほうがいいとおもってます。
CakePHP 2系も出たことだし、まだ触れたことない方はCakePHPに触れてみるいいチャンスだとおもいます。
</p>

<p>そして2系の情報をブログに書いてもらえると僕はうれしい。</p>


                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/PHP%E3%81%AB%E3%82%88%E3%82%8BWordPress%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%83%96%E3%83%83%E3%82%AF%E2%80%953-x%E5%AF%BE%E5%BF%9C-%E8%97%A4%E6%9C%AC-%E5%A3%B1/dp/488337730X%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D488337730X" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/51wTz7ZVbmL._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/PHP%E3%81%AB%E3%82%88%E3%82%8BWordPress%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%83%96%E3%83%83%E3%82%AF%E2%80%953-x%E5%AF%BE%E5%BF%9C-%E8%97%A4%E6%9C%AC-%E5%A3%B1/dp/488337730X%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D488337730X" rel="nofollow">PHPによるWordPressカスタマイズブック―3.x対応</a></h3>
                        <p>作者:藤本 壱 | 価格:￥ 2,940</p>
                    </div>
                    </div>
                </div>
                ]]>
    </content>
</entry>

<entry>
    <title>[jQuery]closest()とparents()</title>
    <link rel="alternate" type="text/html" href="http://www.kantenna.com/pg/2012/02/jqueryclosestparents.php" />
    <id>tag:www.kantenna.com,2012:/pg//7.1264</id>

    <published>2012-02-03T04:57:24Z</published>
    <updated>2012-02-03T05:02:24Z</updated>

    <summary>jQueryのparents()とclosest()が似てたので何が違うのか試した時のメモ。</summary>
    <author>
        <name>caquu</name>
        <uri>http://www.kantenna.com/</uri>
    </author>
    
        <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="jquery" label="jQuery" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="動作確認" label="動作確認" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.kantenna.com/pg/">
        <![CDATA[<p>
今から16年前Netscapeブラウザのソースコードの公開方法の会議の中で、初めてオープンソースという言葉が使われた<a href="http://ja.wikipedia.org/wiki/2%E6%9C%883%E6%97%A5">今日</a>、
みなさんいかがお過ごしでしょうか。
</p>

<p>
今回の投稿は<span class="important">それとは関係のない</span>jQueryのparents()とclosest()が
似てたので何が違うのか試した時のメモです。
</p>]]>
        <![CDATA[<h3>closest()とparents()</h3>
<p>closest([expr])は選択されたDOM要素の親要素で一番最初に[expr]にマッチした要素を取得します。</p>


            <div class="resultWrapper">
            <div class="resultWindow">
                <h4 class="headline">サンプル</h4>
                
                <div class="preview">
                <h5 class="headline">実行結果</h5>
                <div class="jqTest">
    <div>
        <p><span>$().closest()は便利だよ。</span></p>
    </div>
</div>
                </div>
                <div class="codes">
                
            <div class="source"><div class="jssample">
                <h5 class="sourceTitle">Javascript</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code">$</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">.jqTest span</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">closest</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">p</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">css</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">border</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">3px solid #555555</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li></ol></div>
            </div></div>
            
            <div class="source"><div class="jssample">
                <h5 class="sourceTitle">HTML</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">jqTest</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">p</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">span</span><span class="hl-brackets">&gt;</span><span class="hl-code">$().closest()は便利だよ。</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">span</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">p</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span></li></ol></div>
            </div></div>
            
                </div>
            </div>
            </div>
            
<p>これは下記と同じ結果になりますです。</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">javascript</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> $</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">.jqTest span</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">parents</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">p</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">first</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">css</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">border</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">3px solid #555555</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li></ol></div>
            </div></div>
            

<h3>closest()ができること</h3>
<p>closest()の場合、選択したDOM要素も検索対象となります。</p>


            <div class="resultWrapper">
            <div class="resultWindow1">
                <h4 class="headline">サンプル</h4>
                
                <div class="preview">
                <h5 class="headline">実行結果</h5>
                <div class="jqTest2">
    <div>
        <p><span class="target">$().closest()は便利だよ。</span></p>
    </div>
</div>
                </div>
                <div class="codes">
                
            <div class="source"><div class="jssample">
                <h5 class="sourceTitle">Javascript</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-comment">//</span><span class="hl-comment"> 要素が見つかればボーダーが付く</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;$</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">.jqTest2 .target</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">closest</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">.target</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">css</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">border</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">3px solid #555555</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment"> 要素が見つかれば背景が付く</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;$</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">.jqTest2 .target</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">parents</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">.target</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">first</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">css</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">background</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">#CCCCCC</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li></ol></div>
            </div></div>
            
            <div class="source"><div class="jssample">
                <h5 class="sourceTitle">HTML</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">jqTest2</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">p</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">span</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">target</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">$().closest()は便利だよ。</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">span</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">p</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span></li></ol></div>
            </div></div>
            
                </div>
            </div>
            </div>
            

<h3>parents()ができること</h3>
<p>
closest()は最初のDOM要素だけですが、parents([expr])は[expr]にマッチする親要素全て取得します。
</p>


            <div class="resultWrapper">
            <div class="resultWindow2">
                <h4 class="headline">サンプル</h4>
                
                <div class="preview">
                <h5 class="headline">実行結果</h5>
                <div class="jqTest3">
    <div class="wrap">
        <div class="wrap">
            <div class="wrap">
                <p data-func="closest">closest()</p>
            </div>
        </div>
    </div>

    <hr />

    <div class="wrap">
        <div class="wrap">
            <div class="wrap">
                <p data-func="parents">parents()</p>
            </div>
        </div>
    </div>
</div>
                </div>
                <div class="codes">
                
            <div class="source"><div class="jssample">
                <h5 class="sourceTitle">Javascript</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code">$</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">.jqTest3 p</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">each</span><span class="hl-brackets">(</span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">data</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">func</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> === </span><span class="hl-quotes">'</span><span class="hl-string">closest</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        $</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">closest</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">div.wrap</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">css</span><span class="hl-brackets">(</span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-identifier">border</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">3px solid #555555</span><span class="hl-quotes">'</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;                                          </span><span class="hl-identifier">padding</span><span class="hl-code">: </span><span class="hl-number">10</span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-reserved">else</span><span class="hl-code"> </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">data</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">func</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> === </span><span class="hl-quotes">'</span><span class="hl-string">parents</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        $</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">parents</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">.wrap</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">css</span><span class="hl-brackets">(</span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-identifier">border</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">3px solid #555555</span><span class="hl-quotes">'</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;                                       </span><span class="hl-identifier">padding</span><span class="hl-code">: </span><span class="hl-number">10</span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li></ol></div>
            </div></div>
            
            <div class="source"><div class="jssample">
                <h5 class="sourceTitle">HTML</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">jqTest3</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">wrap</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">wrap</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">wrap</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">p</span><span class="hl-code"> </span><span class="hl-var">data-func</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">closest</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">closest()</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">p</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">hr</span><span class="hl-code"> </span><span class="hl-brackets">/&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">wrap</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">wrap</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">wrap</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">p</span><span class="hl-code"> </span><span class="hl-var">data-func</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">parents</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">parents()</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">p</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span></li></ol></div>
            </div></div>
            
                </div>
            </div>
            </div>
            
<p>
パフォーマンスはclosest()の方がよさそうですね。
</p>

<div class="referTo">
    <h5 class="headline">参照ページ</h5>
    <ul>
    <li><a href="http://jsperf.com/jquery-parents-vs-closest/8">jQuery Parents vs Closest · jsPerf</a></li>
    </ul>
</div>


                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/jQuery-Mobile-Jon-Reid/dp/4873115264%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873115264" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/5149YMBYorL._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/jQuery-Mobile-Jon-Reid/dp/4873115264%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873115264" rel="nofollow">jQuery Mobile</a></h3>
                        <p>作者:Jon Reid | 価格:￥ 1,995</p>
                    </div>
                    </div>
                </div>
                
<div class="referTo">
    <h5 class="headline">参照ページ</h5>
    <ul>
    <li><a href="http://www.kantenna.com/reference/jquery/api/traversing/closest/">.closest()</a></li>
    </ul>
</div>



]]>
    </content>
</entry>

<entry>
    <title>[jQuery Mobile]初期化イベントメモ</title>
    <link rel="alternate" type="text/html" href="http://www.kantenna.com/pg/2012/02/jqm_init.php" />
    <id>tag:www.kantenna.com,2012:/pg//7.1262</id>

    <published>2012-02-01T03:18:00Z</published>
    <updated>2012-02-01T03:18:19Z</updated>

    <summary>jQuery Mobleの初期化イベント発生時のDOMの状態がよくわからない。</summary>
    <author>
        <name>caquu</name>
        <uri>http://www.kantenna.com/</uri>
    </author>
    
        <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="jquery" label="jQuery" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="jquerymobile" label="jQuery Mobile" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.kantenna.com/pg/">
        <![CDATA[<p>jQuery Mobileは読み込まれてから</p>

<p class="path">mobileinit -&gt; pagebeforecreate -&gt; pagecreate -&gt; pageinit</p>

<p>
の順番でイベントが発生する。
</p>]]>
        <![CDATA[<h3>mobileinit</h3>
<p>
jQuery Mobileがロードされた時に真っ先に発生するイベント。jQuery Mobileを読み込む前に記述しておくか読み込む。
主にjQuery Mobileの<a href="http://dev.screw-axis.com/doc/jquery_mobile/api/configuring_defaults/">各種設定</a>を変更したりする場所。
</p>

<p>jQuery.ready()よりも前なのでDOMの操作はおこなえないっぽい。</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">javascript</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> $</span><span class="hl-brackets">(</span><span class="hl-builtin">document</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">live</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">mobileinit</span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">event</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;     $</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">.test ul</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">attr</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">data-role</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">listview</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li></ol></div>
            </div></div>
            

                        <div class="source"><div class="standard">
                            <h5 class="sourceTitle">HTML</h5>
                            <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">test</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">data-role</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">page</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">ul</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">#</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">りすと1</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">#</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">りすと2</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">#</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">りすと3</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">ul</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span></li></ol></div>
                        </div>
                        <p class="run"><a href="/codes/jqm/mobileinit.php">実行結果</a></p>
                        </div>
                        

<p>このイベントと次のpagebeforecreateの間にjQuery Mobileは何をやっているのだろうか・・・。</p>
<h3>pagebeforecreate</h3>

<p>
DOMの拡張前に発生するイベント。動的にdata属性を与えたい場合などここに記述する。
このイベントが完了した時点でのHTMLマークアップに基づいてjQeury Mobileがclassつけたり要素をラップしたりすると思われる。
</p>




            <div class="source"><div class="standard">
                <h5 class="sourceTitle">javascript</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> $</span><span class="hl-brackets">(</span><span class="hl-builtin">document</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">live</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">pagebeforecreate</span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">event</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    $</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">.test ul</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">attr</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">data-role</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">listview</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li></ol></div>
            </div></div>
            

                        <div class="source"><div class="standard">
                            <h5 class="sourceTitle">HTML</h5>
                            <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">test</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">data-role</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">page</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">ul</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">#</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">りすと1</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">#</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">りすと2</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">#</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">りすと3</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">ul</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span></li></ol></div>
                        </div>
                        <p class="run"><a href="/codes/jqm/pagebeforecreate.php">実行結果</a></p>
                        </div>
                        



<h3>pagecreate</h3>
<p>jQuery Mobileによるマークアップの拡張、ウィジェット化完了後に発生するイベント？</p>

<div class="referText">
    <blockquote>
    ベータ2より前は、jQuery Mobileにより拡張された後のページやウィジェットのマークアップを操作したい場合は pagecreate イベントにバインドすることが推奨されていました。しかしベータ2で内部的に大きな変更があり、各ウィジェットの初期化がが pagecreate イベントでバインディングされることで分離されました。jQuery UI ウィジェットファクトリーのライフサイクルに準拠すれば、初期化メソッドは create メソッドの 後に 呼ばれるべきです。そのため、拡張が行われたDOMやJavaScriptオブジェクトを操作するには pageinit イベントが最適なタイミングです。端的に言えば、以前 pagecreate を使ってページ表示前に拡張されたマークアップを操作していたならば、ほとんどの場合は pageinit に移してしまうべきです。
    </blockquote>
    <p><a href="http://dev.screw-axis.com/doc/jquery_mobile/api/events/">pageCreate() vs pageinit()</a></p>
</div>

<p>
たぶんあんまり使わなそう。とりあえずこの時点でdata属性を与えてもスタイルは反映されない。
</p>



            <div class="source"><div class="standard">
                <h5 class="sourceTitle">javascript</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> $</span><span class="hl-brackets">(</span><span class="hl-builtin">document</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">bind</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">pagecreate</span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">event</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    $</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">.bt1</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">attr</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">data-role</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">button</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    $</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">.bt2</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">button</span><span class="hl-brackets">(</span><span class="hl-brackets">{</span><span class="hl-identifier">inline</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">, </span><span class="hl-identifier">icon</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">plus</span><span class="hl-quotes">'</span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li></ol></div>
            </div></div>
            

                        <div class="source"><div class="standard">
                            <h5 class="sourceTitle">HTML</h5>
                            <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">data-role</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">page</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">#</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">bt1</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">ボタン1</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">#</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">bt2</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">ボタン2</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span></li></ol></div>
                        </div>
                        <p class="run"><a href="/codes/jqm/pagecreate.php">実行結果</a></p>
                        </div>
                        
<p>ただ.live()を利用すると効果あり。</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">javascript</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> $</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">:jqmData(role=&quot;page&quot;)</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">live</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">pagecreate</span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">event</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    $</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">.bt1</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">attr</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">data-role</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">button</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    $</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">.bt2</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">button</span><span class="hl-brackets">(</span><span class="hl-brackets">{</span><span class="hl-identifier">inline</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">, </span><span class="hl-identifier">icon</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">plus</span><span class="hl-quotes">'</span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li></ol></div>
            </div></div>
            
                        <div class="source"><div class="standard">
                            <h5 class="sourceTitle">HTML</h5>
                            <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">data-role</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">page</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">#</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">bt1</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">ボタン1</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">#</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">bt2</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">ボタン2</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span></li></ol></div>
                        </div>
                        <p class="run"><a href="/codes/jqm/pagecreate2.php">実行結果</a></p>
                        </div>
                        


<h3>pageinit</h3>
<p>jQuery Mobileにおける$(document).ready()。このイベントが発生したときjQuery Mobileは初期化の仕事は終えているはず。</p>

<p>ajaxで要素を追加した場合、スタイルが反映される。</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">javascript</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> $</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">#StartPage</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">live</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">pageinit</span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">event</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    $</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">#ListPage</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">load</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">/codes/jqm/uldata.php ul</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li></ol></div>
            </div></div>
            

                        <div class="source"><div class="standard">
                            <h5 class="sourceTitle">HTML</h5>
                            <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">data-role</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">page</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">id</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">StartPage</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">#ListPage</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">移動</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">data-role</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">page</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">id</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">ListPage</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span></li></ol></div>
                        </div>
                        <p class="run"><a href="/codes/jqm/pageinit.php">実行結果</a></p>
                        </div>
                        

<p>けどjavascriptでdata属性を追加した場合、スタイルは反映されない。</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">javascript</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> $</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">#ListPage</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">live</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">pageinit</span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">event</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    $</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">#ListPage ul</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">attr</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">data-role</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">listview</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li></ol></div>
            </div></div>
            

                        <div class="source"><div class="standard">
                            <h5 class="sourceTitle">HTML</h5>
                            <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">data-role</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">page</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">id</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">StartPage</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">#ListPage</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">移動</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">data-role</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">page</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">id</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">ListPage</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">ul</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">#</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">りすと1</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">#</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">りすと2</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">#</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">りすと3</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">ul</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span></li></ol></div>
                        </div>
                        <p class="run"><a href="/codes/jqm/pageinit2.php">実行結果</a></p>
                        </div>
                        

<p>なんか混乱してきた。</p>

<p>
とりあえずそれぞれのイベント発生時にDOMがどんな状態になっているのか(いつマークアップの拡張が終わって、いつウィジェット化されてんのか)がわかっていないということがわかった。
</p>


                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/HTML5%EF%BC%8BCSS3%E3%81%A7%E4%BD%9C%E3%82%8B-%E9%AD%85%E3%81%9B%E3%82%8BiPhone%E3%82%B5%E3%82%A4%E3%83%88-iPhone-iPad-touch%E5%AF%BE%E5%BF%9C/dp/4899772750%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4899772750" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/51jbh5am4zL._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/HTML5%EF%BC%8BCSS3%E3%81%A7%E4%BD%9C%E3%82%8B-%E9%AD%85%E3%81%9B%E3%82%8BiPhone%E3%82%B5%E3%82%A4%E3%83%88-iPhone-iPad-touch%E5%AF%BE%E5%BF%9C/dp/4899772750%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4899772750" rel="nofollow">HTML5＋CSS3で作る  魅せるiPhoneサイト  iPhone/iPad/iPod touch対応</a></h3>
                        <p>作者:谷拓樹 | 価格:￥ 2,310</p>
                    </div>
                    </div>
                </div>
                <div class="referTo">
    <h5 class="headline">参照ページ</h5>
    <ul>
    <li><a href="http://dev.screw-axis.com/doc/jquery_mobile/api/events/page_initialization/pagebeforecreate/">pagebeforecreate | jQuery Mobile 1.0.1 日本語リファレンス</a></li>
    <li><a href="http://dev.screw-axis.com/doc/jquery_mobile/api/events/page_initialization/pagecreate/">pagecreate | jQuery Mobile 1.0.1 日本語リファレンス</a></li>
    <li><a href="http://dev.screw-axis.com/doc/jquery_mobile/api/events/page_initialization/pageinit/">pageinit | jQuery Mobile 1.0.1 日本語リファレンス</a></li>
    </ul>
</div>
]]>
    </content>
</entry>

<entry>
    <title>[WordPress]管理画面のフッタのフィルタとアクション。</title>
    <link rel="alternate" type="text/html" href="http://www.kantenna.com/pg/2012/02/wordpress_7.php" />
    <id>tag:www.kantenna.com,2012:/pg//7.1263</id>

    <published>2012-01-31T18:54:12Z</published>
    <updated>2012-01-31T18:56:46Z</updated>

    <summary>会員制サイトなどで不特定多数の人にログインさせる場合、フッタのバージョン情報は隠しておきたかったり、
こじゃれたメッセージを表示したいときとか使うアクションとフィルタ。</summary>
    <author>
        <name>caquu</name>
        <uri>http://www.kantenna.com/</uri>
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="wordpress" label="WordPress" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.kantenna.com/pg/">
        <![CDATA[

<p>時間も時間なので、あまり使用頻度の高くない微妙なネタを。</p>

<p>
会員制サイトなどで不特定多数の人にログインさせる場合、フッタのバージョン情報は隠しておきたかったり、
こじゃれたメッセージを表示したいときとか使うアクションとフィルタ。
</p>
]]>
        <![CDATA[


<p>
フッタ部分はwp-admin/admin-footer.phpに書かれています。
見にくいだけで特に難しいところはありませんね。
</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">wp-admin/admin-footer.php</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> </span><span class="hl-brackets">&lt;?</span><span class="hl-reserved">php</span><span class="hl-code"> </span><span class="hl-var">do_action</span><span class="hl-code">( '</span><span class="hl-var">in_admin_footer</span><span class="hl-code">' ); </span><span class="hl-brackets">?&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">p</span><span class="hl-code"> </span><span class="hl-var">id</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">footer-left</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">alignleft</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;?</span><span class="hl-reserved">php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;$</span><span class="hl-var">upgrade</span><span class="hl-code"> = </span><span class="hl-var">apply_filters</span><span class="hl-code">( '</span><span class="hl-var">update_footer</span><span class="hl-code">', '' );</span></li>
<li><span class="hl-code">&nbsp;$</span><span class="hl-var">footer_text</span><span class="hl-code"> = </span><span class="hl-var">array</span><span class="hl-code">(</span></li>
<li><span class="hl-code">&nbsp;    '&lt;</span><span class="hl-reserved">span</span><span class="hl-code"> </span><span class="hl-var">id</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">footer-thankyou</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">' . __( 'Thank you for creating with </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">http://wordpress.org/</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">WordPress</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-code">.' ) . '</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">span</span><span class="hl-brackets">&gt;</span><span class="hl-code">',</span></li>
<li><span class="hl-code">&nbsp;);</span></li>
<li><span class="hl-code">&nbsp;echo apply_filters( 'admin_footer_text', implode( ' </span><span class="hl-special">&amp;bull;</span><span class="hl-code"> ', $footer_text ) );</span></li>
<li><span class="hl-code">&nbsp;unset( $footer_text );</span></li>
<li><span class="hl-code">&nbsp;?&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">p</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">p</span><span class="hl-code"> </span><span class="hl-var">id</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">footer-upgrade</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">alignright</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;?</span><span class="hl-reserved">php</span><span class="hl-code"> </span><span class="hl-var">echo</span><span class="hl-code"> $</span><span class="hl-var">upgrade</span><span class="hl-code">; </span><span class="hl-brackets">?&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">p</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">clear</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span></li></ol></div>
            </div></div>
            
<p>出力と合わせてみるとこんな感じ。</p>

<p><img src="/storage/info/wp_admin_footer.gif" /></p>



            <div class="source"><div class="standard">
                <h5 class="sourceTitle">AdminFooks.php</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">class</span><span class="hl-code"> </span><span class="hl-identifier">AdminFooks</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-comment">/*</span><span class="hl-comment">*</span></li>
<li><span class="hl-comment">&nbsp;     * フッタのワードプレスのバージョン部分のテキストを設定する。</span></li>
<li><span class="hl-comment">&nbsp;     *</span></li>
<li><span class="hl-comment">&nbsp;     *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">strign $string</span></li>
<li><span class="hl-comment">&nbsp;     </span><span class="hl-comment">*/</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">update_footer</span><span class="hl-brackets">(</span><span class="hl-var">$string</span><span class="hl-brackets">)</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">update_footer</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-comment">/*</span><span class="hl-comment">*</span></li>
<li><span class="hl-comment">&nbsp;     * フッタの文章を変更する。</span></li>
<li><span class="hl-comment">&nbsp;     *</span></li>
<li><span class="hl-comment">&nbsp;     *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">string $code</span></li>
<li><span class="hl-comment">&nbsp;     </span><span class="hl-comment">*/</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">admin_footer_text</span><span class="hl-brackets">(</span><span class="hl-var">$html</span><span class="hl-brackets">)</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">admin_footer_text</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-comment">/*</span><span class="hl-comment">*</span></li>
<li><span class="hl-comment">&nbsp;     * フッタの先頭に何かを出力する場合、echo</span></li>
<li><span class="hl-comment">&nbsp;     *</span></li>
<li><span class="hl-comment">&nbsp;     *</span><span class="hl-inlinedoc"> @return </span><span class="hl-comment">void</span></li>
<li><span class="hl-comment">&nbsp;     </span><span class="hl-comment">*/</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">in_admin_footer</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">echo</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">&lt;p&gt;in_admin_footer&lt;/p&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            

            <div class="source"><div class="standard">
                <h5 class="sourceTitle">function.php</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-identifier">is_admin</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">require_once</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">path/to/AdminFooks.php</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-var">$admin_fooks</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">AdminFooks</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-identifier">add_filter</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">update_footer</span><span class="hl-quotes">'</span><span class="hl-code">,     </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-var">$admin_fooks</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">update_footer</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-identifier">add_filter</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">admin_footer_text</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-var">$admin_fooks</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">admin_footer_text</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-identifier">add_filter</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">in_admin_footer</span><span class="hl-quotes">'</span><span class="hl-code">,   </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-var">$admin_fooks</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">in_admin_footer</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>結果はこんな感じになります。</p>
<p><img src="/storage/info/wp_admin_footer_result.gif" /></p>

<p>
update_footerにはcore_update_footer関数も登録されてるので優先順位なしだとWordPressのバージョンが古い場合、
「バージョン 3.3.1 を入手」のような表示が出てしまします。これも表示させたくない場合、
</p>

            <div class="source"><div class="standard">
                <h5 class="sourceTitle">function.php</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-identifier">add_filter</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">update_footer</span><span class="hl-quotes">'</span><span class="hl-code">,     </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-var">$admin_fooks</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">update_footer</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-number">20</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>のように、優先度を下げることでcore_update_footerの後に実行されるようにします。</p>



                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/WordPress%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA-3-2%E5%AF%BE%E5%BF%9C-%E3%83%9D%E3%83%86%E3%83%B3%E3%82%B7%E3%83%A3%E3%83%AB%E3%82%92100%EF%BC%85%E5%BC%95%E3%81%8D%E5%87%BA%E3%81%99%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF-%E4%B8%8B%E9%87%8E-%E5%AE%8F/dp/4797366052%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4797366052" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/51RmNl2iZGL._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/WordPress%E3%82%B9%E3%83%BC%E3%83%91%E3%83%BC%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA-3-2%E5%AF%BE%E5%BF%9C-%E3%83%9D%E3%83%86%E3%83%B3%E3%82%B7%E3%83%A3%E3%83%AB%E3%82%92100%EF%BC%85%E5%BC%95%E3%81%8D%E5%87%BA%E3%81%99%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF-%E4%B8%8B%E9%87%8E-%E5%AE%8F/dp/4797366052%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4797366052" rel="nofollow">WordPressスーパーカスタマイズ 3.2対応　ポテンシャルを100％引き出すテクニック</a></h3>
                        <p>作者:下野 理子 | 価格:￥ 2,940</p>
                    </div>
                    </div>
                </div>
                ]]>
    </content>
</entry>

<entry>
    <title>[WordPress] ブログの情報を取得する方法とノーキャッシュ疑惑</title>
    <link rel="alternate" type="text/html" href="http://www.kantenna.com/pg/2012/01/wp_blog_info.php" />
    <id>tag:www.kantenna.com,2012:/pg//7.1261</id>

    <published>2012-01-28T14:01:04Z</published>
    <updated>2012-01-28T14:15:17Z</updated>

    <summary>ブログのget_bloginfo()で取れないデータが必要な場合に使うもの</summary>
    <author>
        <name>caquu</name>
        <uri>http://www.kantenna.com/</uri>
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="get_blog_id_from_url" label="get_blog_id_from_url" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="wordpress" label="WordPress" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="関数" label="関数" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.kantenna.com/pg/">
        <![CDATA[<p>ブログのget_bloginfo()で取れないデータが必要な場合に使うもの。</p>]]>
        <![CDATA[
<h3>ブログIDを取得したい。</h3>

<p>ブログのIDを取得したい場合、グローバル変数の$current_blogを使うか、get_blog_id_from_url()を利用する。</p>

            <div class="source"><div class="standard">
                <h5 class="sourceTitle">PHP</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">global</span><span class="hl-code"> </span><span class="hl-var">$current_blog</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-var">$blog_id</span><span class="hl-code"> = </span><span class="hl-var">$current_blog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">blog_id</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>$current_blogはstdClassでプロパティは</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">PHP</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-quotes">'</span><span class="hl-string">blog_id</span><span class="hl-quotes">'</span><span class="hl-code"> =&gt; </span><span class="hl-identifier">string</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">2</span><span class="hl-quotes">'</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-quotes">'</span><span class="hl-string">site_id</span><span class="hl-quotes">'</span><span class="hl-code"> =&gt; </span><span class="hl-identifier">string</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">1</span><span class="hl-quotes">'</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-quotes">'</span><span class="hl-string">domain</span><span class="hl-quotes">'</span><span class="hl-code"> =&gt; </span><span class="hl-identifier">string</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">www.kantenna.com</span><span class="hl-quotes">'</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-quotes">'</span><span class="hl-string">path</span><span class="hl-quotes">'</span><span class="hl-code"> =&gt; </span><span class="hl-identifier">string</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">/</span><span class="hl-quotes">'</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-quotes">'</span><span class="hl-string">registered</span><span class="hl-quotes">'</span><span class="hl-code"> =&gt; </span><span class="hl-identifier">string</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">2012-01-15 12:08:02</span><span class="hl-quotes">'</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-quotes">'</span><span class="hl-string">last_updated</span><span class="hl-quotes">'</span><span class="hl-code"> =&gt; </span><span class="hl-identifier">string</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">2012-01-23 18:06:25</span><span class="hl-quotes">'</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-quotes">'</span><span class="hl-string">public</span><span class="hl-quotes">'</span><span class="hl-code"> =&gt; </span><span class="hl-identifier">string</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">1</span><span class="hl-quotes">'</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-quotes">'</span><span class="hl-string">archived</span><span class="hl-quotes">'</span><span class="hl-code"> =&gt; </span><span class="hl-identifier">string</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">0</span><span class="hl-quotes">'</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-quotes">'</span><span class="hl-string">mature</span><span class="hl-quotes">'</span><span class="hl-code"> =&gt; </span><span class="hl-identifier">string</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">0</span><span class="hl-quotes">'</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-quotes">'</span><span class="hl-string">spam</span><span class="hl-quotes">'</span><span class="hl-code"> =&gt; </span><span class="hl-identifier">string</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">0</span><span class="hl-quotes">'</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-quotes">'</span><span class="hl-string">deleted</span><span class="hl-quotes">'</span><span class="hl-code"> =&gt; </span><span class="hl-identifier">string</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">0</span><span class="hl-quotes">'</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-quotes">'</span><span class="hl-string">lang_id</span><span class="hl-quotes">'</span><span class="hl-code"> =&gt; </span><span class="hl-identifier">string</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">0</span><span class="hl-quotes">'</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>
となっている。マルチサイトをサブドメインベースで構築した場合の結果なのでディレクトリベースの場合とか多少変わってくるかも。
もう一つのget_blog_id_from_url()は引数にドメイン名とディレクトリパスをとれる。
</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">PHP</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-var">$blog_id</span><span class="hl-code"> = </span><span class="hl-identifier">get_blog_id_from_url</span><span class="hl-brackets">(</span><span class="hl-identifier">get_bloginfo</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">wpurl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>としたいところだがこれはfalseが返る。プロトコルはいらないらしい。</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">PHP</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-var">$blog_id</span><span class="hl-code"> = </span><span class="hl-identifier">get_blog_id_from_url</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">http://www.kantenna.com</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">//</span><span class="hl-comment"> false</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-var">$blog_id</span><span class="hl-code"> = </span><span class="hl-identifier">get_blog_id_from_url</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">www.kantenna.com</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;        </span><span class="hl-comment">//</span><span class="hl-comment"> int</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>
get_bloginfo('id')でとれるようにしてくれないんだろうか。
ちなみに、get_bloginfo()の引数、homeとsiteurlがいつの間にか、DEPRECATEDになっていた。
</p>


<h3>オプションを全て取得したい。</h3>


<p>
wp_load_alloptions()を使用します。
で、気になったのが<a href="http://www.qnote.co.jp/archives/730">WordPressマルチサイトのパフォーマンス問題 | qnote</a>。
</p>

<p>
マルチサイトの場合、get_option()がキャッシュを使わずデータベースアクセスしているとの指摘。
まじかよwwwでもWordPressならありえそうと思いつつ問題箇所を見てみる。
</p>



            <div class="source"><div class="standard">
                <h5 class="sourceTitle">wp_load_alloptions()</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> !</span><span class="hl-identifier">defined</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">WP_INSTALLING</span><span class="hl-quotes">'</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> || !</span><span class="hl-identifier">is_multisite</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-var">$alloptions</span><span class="hl-code"> = </span><span class="hl-identifier">wp_cache_get</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">alloptions</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">options</span><span class="hl-quotes">'</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">else</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-var">$alloptions</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>
ぱっと見た感じキャッシュが使われない気がするのだが、僕の状況(3.3.1の日本語版、サブドメインベースのマルチサイト)ではdefined('WP_INSTALLING')が大抵の場合falseを返す。
じゃあWP_INSTALLINGってどこで定義されてんのかと見てみると、<span class="path">wp_activate.php</span>と<span class="path">wp-admin/install.php</span>と<span class="path">wp-admin/setup-config.php</span>、<span class="path">wp-admin/upgrade.php</span>、<span class="path">wp-includes/ms-funtions.php</span>のwpmu_create_blog()の中。
</p>

<p>おそらくWP_INSTALLINGはインストール時とか特定の状況でしか定義されない定数ため、普通のコンテンツページなどはキャッシュが使われるているみたいです。</p>

<p>
バージョンによってはWP_INSTALLINGがグローバルに定義されてたり
自分で定義しちゃってたり、僕の環境が特殊だったりするかもしれないので
ちゃんとキャッシュ使われてるか確認した方がいいかもしれません。
</p>





                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/PHP%E3%81%AB%E3%82%88%E3%82%8BWordPress%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%83%96%E3%83%83%E3%82%AF%E2%80%953-x%E5%AF%BE%E5%BF%9C-%E8%97%A4%E6%9C%AC-%E5%A3%B1/dp/488337730X%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D488337730X" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/51wTz7ZVbmL._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/PHP%E3%81%AB%E3%82%88%E3%82%8BWordPress%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%83%96%E3%83%83%E3%82%AF%E2%80%953-x%E5%AF%BE%E5%BF%9C-%E8%97%A4%E6%9C%AC-%E5%A3%B1/dp/488337730X%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D488337730X" rel="nofollow">PHPによるWordPressカスタマイズブック―3.x対応</a></h3>
                        <p>作者:藤本 壱 | 価格:￥ 2,940</p>
                    </div>
                    </div>
                </div>
                ]]>
    </content>
</entry>

<entry>
    <title>検索エンジンにやさしいパンくずリストのコーディング</title>
    <link rel="alternate" type="text/html" href="http://www.kantenna.com/pg/2012/01/post_44.php" />
    <id>tag:www.kantenna.com,2012:/pg//7.1260</id>

    <published>2012-01-26T19:04:34Z</published>
    <updated>2012-01-27T04:28:07Z</updated>

    <summary>検索エンジンにやさしいパンくずリストのコーディングについて</summary>
    <author>
        <name>caquu</name>
        <uri>http://www.kantenna.com/</uri>
    </author>
    
        <category term="HTML/CSS" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="言語仕様" label="言語仕様" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.kantenna.com/pg/">
        <![CDATA[<p>ってなんだ。</p>
]]>
        <![CDATA[<h3>HTMLに意味を。</h3>

<p>こんなHTMLがあったとします。</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">HTML</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">p</span><span class="hl-brackets">&gt;</span><span class="hl-code">kantenna</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">p</span><span class="hl-brackets">&gt;</span></li></ol></div>
            </div></div>
            
<p>
シンプルでとてもコーディングしやすいですが、kantennaがどういう意味を持つのか、何を表しているのかがまったくわかりません。
これに意味を持たせてやろうじゃないかということで作られたのがRDFa、maicroformats、microdataという仕様です。
</p>

<h3>RDFa、maicroformats、microdata</h3>
<p>
maicroformatsではclass属性やrel属性を利用してマークアップするので、これまでと違和感なく使えるのですが、
拡張性がなくCSSやJavascriptでも利用することから歪なマークアップになったりいまいち使いにくい。
</p>

<p>
ここでW3Cさんが登場してRDFaというものを標準化しました。業界では一目置かれる存在であるW3Cさんが取り組んでいるので
信頼性が高いのですが、いかんせん名前空間の宣言が必要だったり冗長すぎてコーディングしたくないレベル。
</p>

<p>
こいつのペースに巻き込まれると事がどんどんややこしくなりやがる。
</p>

<p>
結局どちらも使いづらいよねってことで、RDFaよりシンプルでmaicroformatsより拡張性があるものをと
いうことでできたのがmicrodata。ようやく使えそうな仕様ができたところで、google、yahoo、msnの
検索大手が手を組んでmicrodataを利用した<a href="http://schema.org/">schema.org</a>を策定しました。
</p>

<div class="referTo">
    <h5 class="headline">引用</h5>
    <ul>
        <li>民明書房刊『幕が上がらなかったウェブ新時代』より</li>
    </ul>
</div>

<p>
microdataは名前空間的なものを作れるので、なんなら自分のアプリケーション用に定義することも可能はずです。
DOM APIもあるようなので今後使うケースもあるかもしれませんね。
</p>

<p>ってことでschema.orgを利用してマークアップするとどうなるかというと</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">HTML</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">itemscope</span><span class="hl-code"> </span><span class="hl-var">itemtype</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">http://www.schema.org/BookStore</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">p</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">shop</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">itemprop</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">name</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">kantenna</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">p</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span></li></ol></div>
            </div></div>
            
<p>
これでkantennaが実は本屋(BookStore)の名前(name)ということが検索エンジンに伝わるようになります。
同じように<a href="http://schema.org/">schema.org</a>ではパンくずリストということを検索エンジンに伝える<a href="http://www.schema.org/WebPage">WebPage</a>
というitemtypeにbreadcrumbというプロパティが存在しています。
</p>

<p>それを利用するとパンくずリストのマークアップは</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">HTML</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">body</span><span class="hl-code"> </span><span class="hl-var">itemscope</span><span class="hl-code"> </span><span class="hl-var">itemtype</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">http://schema.org/WebPage</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">p</span><span class="hl-code"> </span><span class="hl-var">itemprop</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">breadcrumb</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">/</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">HOME</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-code"> </span><span class="hl-special">&amp;gt;</span><span class="hl-code"> </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">/pg/</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">プログラム覚書</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">p</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">body</span><span class="hl-brackets">&gt;</span></li></ol></div>
            </div></div>
            
<p>
のようになります。他にも意味を与えることができるitemtypeがありますが<a href="http://www.schema.org/docs/full.html">Full Hierarchy</a>が、
とてもわかりやすく、探しやすく作られているので眺めてみるといいかと思います。
</p>

<p>このくらいわかりやすくしてくれると使いやすいですね。</p>

<p>
問題はこれがHTML5で利用できる属性ってことだけど、googleは
microformats、RDFaも認識してくれるようなので、どれを利用してもよさそうです。
</p>

<div class="referTo">
    <h5 class="headline">参照サイト</h5>
    <ul>
        <li><a href="http://terkel.jp/archives/2011/08/microdata-and-schema-org/">Microdata + schema.org を実際に使ってみる - terkel.jp</a></li>
        <li><a href="http://support.google.com/webmasters/bin/answer.py?hl=ja&answer=185417">パンくずリスト - ウェブマスター ツール ヘルプ</a></li>
        <li><a href="http://support.google.com/webmasters/bin/topic.py?hl=ja&topic=1088474&parent=21997&ctx=topic">リッチ スニペットの種類 - ウェブマスター ツール ヘルプ</a></li>
        <li><a href="http://kojika17.com/2010/12/differences-microformats-and-microdata.php">MicroformatsとMicrodataの違いについて : Web Design KOJIKA17</a></li>
    </ul>
</div>

<h3>SERPs</h3>

<p>
当然ながら、これは順位をあげるものではありませんので、変な営業にひっかからないように気をつけてください。
この期に及んで内部施策、外部施策とか言ってくる業者とは一切関わらないようにしましょう。
</p>

<p>彼らは今お金が欲しいだけなんです。</p>

<p>
あなたの事業の強みを理解してコンテンツの企画を提案してくる業者であれば話を聞く価値があります。
</p>

<p>
と言っても、たぶんこのサイトを見てるのはそういう層じゃないんだよな。。。
</p>


                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%B3%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEHTML5%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA%E3%82%AC%E3%82%A4%E3%83%89%E2%80%95iPhone-iPad-Android%E5%AF%BE%E5%BF%9C-%E3%82%AF%E3%82%B8%E3%83%A9%E9%A3%9B%E8%A1%8C%E6%9C%BA/dp/4883377288%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4883377288" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/41cNA9HDrKL._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%B3%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEHTML5%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA%E3%82%AC%E3%82%A4%E3%83%89%E2%80%95iPhone-iPad-Android%E5%AF%BE%E5%BF%9C-%E3%82%AF%E3%82%B8%E3%83%A9%E9%A3%9B%E8%A1%8C%E6%9C%BA/dp/4883377288%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4883377288" rel="nofollow">スマートフォンのためのHTML5アプリケーション開発ガイド―iPhone/iPad/Android対応</a></h3>
                        <p>作者:クジラ飛行机 | 価格:￥ 2,520</p>
                    </div>
                    </div>
                </div>
                ]]>
    </content>
</entry>

<entry>
    <title>[jQuery Mobile]ダイアログ</title>
    <link rel="alternate" type="text/html" href="http://www.kantenna.com/pg/2012/01/jquery_mobile.php" />
    <id>tag:www.kantenna.com,2012:/pg//7.1259</id>

    <published>2012-01-25T16:47:49Z</published>
    <updated>2012-01-25T16:50:13Z</updated>

    <summary>jQuery Mobileにおけるダイアログの扱いはウインドウではなくページ。
なので通常のページと同様に扱える。ダイアログウインドウを出す。じゃなくダイアログページに遷移する。的な。</summary>
    <author>
        <name>caquu</name>
        <uri>http://www.kantenna.com/</uri>
    </author>
    
        <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="jquery" label="jQuery" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="jquerymobile" label="jQuery Mobile" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.kantenna.com/pg/">
        <![CDATA[<p>
jQuery Mobileにおけるダイアログの扱いはウインドウではなくページ。
なので通常のページと同様に扱える。ダイアログウインドウを出す。じゃなくダイアログページに遷移する。的な。
</p>]]>
        <![CDATA[

<h3>HTMLに直接記述する場合</h3>
<p>hrefをファイルにすれば外のページもダイアログとして表示できる。</p>

            <div class="source"><div class="standard">
                <h5 class="sourceTitle">HTML</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">id</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">Contents</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">data-role</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">page</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">header</span><span class="hl-code"> </span><span class="hl-var">data-role</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">header</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">h2</span><span class="hl-brackets">&gt;</span><span class="hl-code">ダイアログテスト</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">h2</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">header</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">data-role</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">content</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">a</span><span class="hl-code"> </span><span class="hl-var">href</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">#DialogContents</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">data-rel</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">dialog</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">data-transition</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">pop</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">ダイアログ</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">a</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">id</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">DialogContents</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">data-role</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">page</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">header</span><span class="hl-code"> </span><span class="hl-var">data-role</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">header</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">h2</span><span class="hl-brackets">&gt;</span><span class="hl-code">ダイアログのヘッダ</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">h2</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">header</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">data-role</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">content</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">p</span><span class="hl-brackets">&gt;</span><span class="hl-code">コンテンツ</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">p</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span></li></ol></div>
            </div></div>
            
<p><a href="/codes/jqm/dialog1.php">ダイアログテスト</a></p>


<h3>ダイアログを動的に生成したい場合</h3>

<p>こういうことはあまりやらないとおもいますが。</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">Javascript</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> $</span><span class="hl-brackets">(</span><span class="hl-builtin">document</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">bind</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">pageinit</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    $</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">#DialogButton</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">bind</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">vclick</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-comment">//</span><span class="hl-comment"> ダイアログの内容。</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">dialog_html</span><span class="hl-code"> = </span><span class="hl-brackets">[</span><span class="hl-quotes">'</span><span class="hl-string">&lt;div data-role=&quot;page&quot; id=&quot;DialogTest&quot;&gt;</span><span class="hl-quotes">'</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;                                </span><span class="hl-quotes">'</span><span class="hl-string">&lt;div data-role=&quot;header&quot;&gt;&lt;h3&gt;ヘッダ&lt;/h3&gt;&lt;/div&gt;</span><span class="hl-quotes">'</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;                                </span><span class="hl-quotes">'</span><span class="hl-string">&lt;div data-role=&quot;content&quot;&gt;&lt;p&gt;ダイアログ 生成てすと&lt;/p&gt;&lt;/div&gt;</span><span class="hl-quotes">'</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;                            </span><span class="hl-quotes">'</span><span class="hl-string">&lt;/div&gt;</span><span class="hl-quotes">'</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">join</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-comment">//</span><span class="hl-comment"> DOMに追加</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        $</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">body</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">append</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-brackets">(</span><span class="hl-identifier">dialog_html</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;        </span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-comment">//</span><span class="hl-comment"> ダイアログを表示させる。</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        $.</span><span class="hl-identifier">mobile</span><span class="hl-code">.</span><span class="hl-identifier">changePage</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">#DialogTest</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-identifier">transition</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">pop</span><span class="hl-quotes">'</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-identifier">role</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">dialog</span><span class="hl-quotes">'</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li></ol></div>
            </div></div>
            
            <div class="source"><div class="standard">
                <h5 class="sourceTitle">HTML</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">button</span><span class="hl-code"> </span><span class="hl-var">id</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">DialogButton</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code">クリック meeeeeee!!!</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">button</span><span class="hl-brackets">&gt;</span></li></ol></div>
            </div></div>
            
<p>
上記のようにDOMに追加した場合、ダイアログが閉じられた時に削除しないとイベント発生の度に追加されてしまう。
なので閉じられた時に削除をしたいわけだが、ダイアログも通常のページと同じということで、独自のイベントをトリガするわけでもなさそう。
</p>

<p>
なのでpagehideイベントを監視する。
pagehideはページ遷移の度に発生するので、動的に生成したダイアログだった場合という判定が必要になる。
</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">Javascript</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code"> $</span><span class="hl-brackets">(</span><span class="hl-builtin">document</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">bind</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">pagehide</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">, </span><span class="hl-identifier">ui</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">target</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">attr</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">id</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> === </span><span class="hl-quotes">'</span><span class="hl-string">DialogTest</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        $</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">target</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">remove</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li></ol></div>
            </div></div>
            
<p><a href="/codes/jqm/dialog2.php">ダイアログテスト2</a>。もっといい方法がありそうだけど。</p>


<div class="referTo">
    <h5 class="headline">参照ページ</h5>
    <ul>
    <li><a href="http://dev.screw-axis.com/doc/jquery_mobile/components/pages_dialogs/dialogs/">ダイアログ | jQuery Mobile 1.0 日本語リファレンス</a></li>
    </ul>
</div>


                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%B3%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEHTML5%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA%E3%82%AC%E3%82%A4%E3%83%89%E2%80%95iPhone-iPad-Android%E5%AF%BE%E5%BF%9C-%E3%82%AF%E3%82%B8%E3%83%A9%E9%A3%9B%E8%A1%8C%E6%9C%BA/dp/4883377288%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4883377288" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/41cNA9HDrKL._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%83%95%E3%82%A9%E3%83%B3%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEHTML5%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA%E3%82%AC%E3%82%A4%E3%83%89%E2%80%95iPhone-iPad-Android%E5%AF%BE%E5%BF%9C-%E3%82%AF%E3%82%B8%E3%83%A9%E9%A3%9B%E8%A1%8C%E6%9C%BA/dp/4883377288%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4883377288" rel="nofollow">スマートフォンのためのHTML5アプリケーション開発ガイド―iPhone/iPad/Android対応</a></h3>
                        <p>作者:クジラ飛行机 | 価格:￥ 2,520</p>
                    </div>
                    </div>
                </div>
                ]]>
    </content>
</entry>

<entry>
    <title>[WordPress] テンプレートのごちゃごちゃが限界にきたのでラッパー書いてみた。</title>
    <link rel="alternate" type="text/html" href="http://www.kantenna.com/pg/2012/01/wordpress_wrap.php" />
    <id>tag:www.kantenna.com,2012:/pg//7.1253</id>

    <published>2012-01-12T16:37:22Z</published>
    <updated>2012-02-15T01:38:25Z</updated>

    <summary>テンプレートのごちゃごちゃが限界にきたのでラッパー書いてみた。でも僕なんかではなくもっとデキる人が書いたものを使いたいw</summary>
    <author>
        <name>caquu</name>
        <uri>http://www.kantenna.com/</uri>
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="wordpress" label="WordPress" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.kantenna.com/pg/">
        <![CDATA[<p>
<a href="http://www.kantenna.com/pg/2010/05/wordpressstr_replace.php">[WordPress]テンプレートがごちゃごちゃしてきたらstr_replace</a>とかでごまかしてきたけど、限界が来たのでラッパーをかいてみた。
</p>
]]>
        <![CDATA[<p>初期設定は<a href="https://github.com/caquu/cqt">caquu/cqt - GitHub</a>をダウンロードしてfuntions.phpに</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">functions.php</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">require_once</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">/path/to/CQT/CQT/CaQuuTools.php</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-identifier">CaQuuTools</span><span class="hl-code">::</span><span class="hl-identifier">init</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>と書いてパスを通します。あとは</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">PHP</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-comment">//</span><span class="hl-comment"> postオブジェクト作成</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-var">$_posts</span><span class="hl-code"> = </span><span class="hl-identifier">CQT_WPLayer</span><span class="hl-code">::</span><span class="hl-identifier">factoryPost</span><span class="hl-brackets">(</span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-number">998</span><span class="hl-code">, </span><span class="hl-number">834</span><span class="hl-code">, </span><span class="hl-number">995</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">foreach</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-var">$_posts</span><span class="hl-code"> </span><span class="hl-reserved">as</span><span class="hl-code"> </span><span class="hl-var">$_post</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-comment">//</span><span class="hl-comment"> サムネイルがあれば表示</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">try</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">echo</span><span class="hl-code"> </span><span class="hl-var">$_post</span><span class="hl-code">-&gt;</span><span class="hl-identifier">thumnail</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">-&gt;</span><span class="hl-identifier">toHTML</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">&lt;img src=&quot;{{{ url }}}&quot; alt=&quot;{{{ alt }}}&quot; /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                                        </span><span class="hl-quotes">'</span><span class="hl-string">alt</span><span class="hl-quotes">'</span><span class="hl-code"> =&gt; </span><span class="hl-var">$_post</span><span class="hl-code">-&gt;</span><span class="hl-identifier">title</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                                        </span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-reserved">catch</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-identifier">CQT_WPLayer_Exception</span><span class="hl-code"> </span><span class="hl-var">$e</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">echo</span><span class="hl-code"> </span><span class="hl-var">$e</span><span class="hl-code">-&gt;</span><span class="hl-identifier">toHTML</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">{{{ message }}}</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-comment">//</span><span class="hl-comment"> 投稿へのリンク</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">echo</span><span class="hl-code"> </span><span class="hl-var">$_post</span><span class="hl-code">-&gt;</span><span class="hl-identifier">toHTML</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">&lt;h3&gt;&lt;a href=&quot;{{{ permalink }}}&quot;&gt;{{{ title }}}&lt;/a&gt;&lt;/h3&gt;</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-comment">//</span><span class="hl-comment"> 投稿した人</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">echo</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">[筆者] </span><span class="hl-quotes">'</span><span class="hl-code"> . </span><span class="hl-var">$_post</span><span class="hl-code">-&gt;</span><span class="hl-identifier">author</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">-&gt;</span><span class="hl-identifier">display_name</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">&lt;br /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-comment">//</span><span class="hl-comment"> 投稿のカテゴリ</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">echo</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">[カテゴリ] </span><span class="hl-quotes">'</span><span class="hl-code"> . </span><span class="hl-var">$_post</span><span class="hl-code">-&gt;</span><span class="hl-identifier">categories</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">-&gt;</span><span class="hl-identifier">toHTML</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">&lt;a href=&quot;{{{ link }}}&quot;&gt;{{{ name }}}&lt;/a&gt;</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">&lt;br /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-comment">//</span><span class="hl-comment"> 投稿に付けられたタグ</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">echo</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">[タグ] </span><span class="hl-quotes">'</span><span class="hl-code"> . </span><span class="hl-var">$_post</span><span class="hl-code">-&gt;</span><span class="hl-identifier">tags</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">-&gt;</span><span class="hl-identifier">toHTML</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">&lt;a href=&quot;{{{ link }}}&quot;&gt;{{{ name }}}&lt;/a&gt;</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">echo</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">&lt;hr /&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>
のような感じで書けます。結果は<a href="http://www.zaku055.com/wplayers/cqt_wplayer_factorypost/">CQT_WPLayer::factoryPost() | デザインの汁</a>な感じになります。
</p>

<p>single.phpとかなら</p>

            <div class="source"><div class="standard">
                <h5 class="sourceTitle">PHP</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">while</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-identifier">have_posts</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">the_post</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-comment">//</span><span class="hl-comment"> postオブジェクト作成</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-var">$_post</span><span class="hl-code"> = </span><span class="hl-identifier">CQT_WPLayer</span><span class="hl-code">::</span><span class="hl-identifier">factoryPost</span><span class="hl-brackets">(</span><span class="hl-var">$post</span><span class="hl-brackets">)</span><span class="hl-code">-&gt;</span><span class="hl-identifier">current</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-identifier">endwhile</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>
とすると<a href="http://www.zaku055.com/wplayer_tags/cqt_wplayer_post/">CQT_WPLayer_Post</a>のメソッドが利用できます。たぶんWordPressに慣れてない人の方がすんなり使えるかも。
</p>




                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/%E5%9F%BA%E6%9C%AC%E3%81%8B%E3%82%89%E3%81%97%E3%81%A3%E3%81%8B%E3%82%8A%E3%82%8F%E3%81%8B%E3%82%8B-WordPress-3%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%83%96%E3%83%83%E3%82%AF-Web-Designing-Books/dp/4839936072%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4839936072" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/51mZVyTmYIL._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/%E5%9F%BA%E6%9C%AC%E3%81%8B%E3%82%89%E3%81%97%E3%81%A3%E3%81%8B%E3%82%8A%E3%82%8F%E3%81%8B%E3%82%8B-WordPress-3%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%83%96%E3%83%83%E3%82%AF-Web-Designing-Books/dp/4839936072%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4839936072" rel="nofollow">基本からしっかりわかる　WordPress 3カスタマイズブック (Web Designing Books)</a></h3>
                        <p>作者:大藤幹 | 価格:￥ 2,520</p>
                    </div>
                    </div>
                </div>
                
<div class="referTo">
    <h5 class="headline">参照ページ</h5>
    <ul>
    <li><a href="http://www.caquu.com/tools/wplayer/">CQT_WPLayer &lt; CaQuu::Tools</a></li>
    <li><a href="http://www.zaku055.com/wplayers/">CQT_WPLayer テスト | デザインの汁</a></li>
    <li><a href="https://github.com/caquu/cqt">caquu/cqt - GitHub</a></li>
    </ul>
</div>]]>
    </content>
</entry>

<entry>
    <title>[WordPress] 次の投稿と前の投稿を取得する。</title>
    <link rel="alternate" type="text/html" href="http://www.kantenna.com/pg/2012/01/wordpress_get_adjacent_post.php" />
    <id>tag:www.kantenna.com,2012:/pg//7.1252</id>

    <published>2012-01-11T16:03:57Z</published>
    <updated>2012-01-11T16:13:18Z</updated>

    <summary>どこからでも次の投稿と前の投稿を取得できるよう、get_adjacent_post()を変更してみる。</summary>
    <author>
        <name>caquu</name>
        <uri>http://www.kantenna.com/</uri>
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="wordpress" label="WordPress" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="カスタマイズ" label="カスタマイズ" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="関数" label="関数" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.kantenna.com/pg/">
        <![CDATA[<p>
次の投稿とか前の投稿を取得するget_adjacent_post()が、どうもループ内じゃないと利用できないようになっている模様。
</p>
]]>
        <![CDATA[

<p>
get_adjacent_post()はループの際に作成されるグローバル変数の$postを使うようになっているので、
どの投稿を使うかこちらで決めれるようにちょっとだけ変更してみる。
</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">functions.php</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-comment">/*</span><span class="hl-comment">*</span></li>
<li><span class="hl-comment">&nbsp;     * グローバルの$postを利用しないようにする</span></li>
<li><span class="hl-comment">&nbsp;     *</span></li>
<li><span class="hl-comment">&nbsp;     *</span></li>
<li><span class="hl-comment">&nbsp;     * Retrieve adjacent post.</span></li>
<li><span class="hl-comment">&nbsp;     *</span></li>
<li><span class="hl-comment">&nbsp;     * Can either be next or previous post.</span></li>
<li><span class="hl-comment">&nbsp;     *</span></li>
<li><span class="hl-comment">&nbsp;     *</span><span class="hl-inlinedoc"> @since </span><span class="hl-comment">2.5.0</span></li>
<li><span class="hl-comment">&nbsp;     *</span><span class="hl-inlinedoc"> @see </span><span class="hl-comment">get_adjacent_post()</span></li>
<li><span class="hl-comment">&nbsp;     *</span></li>
<li><span class="hl-comment">&nbsp;     *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">int|object 投稿IDか投稿オブジェクト</span></li>
<li><span class="hl-comment">&nbsp;     *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">bool $in_same_cat Optional. Whether post should be in a same category.</span></li>
<li><span class="hl-comment">&nbsp;     *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs.</span></li>
<li><span class="hl-comment">&nbsp;     *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">bool $previous Optional. Whether to retrieve previous post.</span></li>
<li><span class="hl-comment">&nbsp;     *</span><span class="hl-inlinedoc"> @return </span><span class="hl-comment">mixed Post object if successful. Null if global $post is not set. Empty string if no corresponding post exists.</span></li>
<li><span class="hl-comment">&nbsp;     </span><span class="hl-comment">*/</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">my_get_adjacent_post</span><span class="hl-brackets">(</span><span class="hl-var">$postdata</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">, </span><span class="hl-var">$in_same_cat</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">, </span><span class="hl-var">$excluded_categories</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$previous</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">global</span><span class="hl-code"> </span><span class="hl-var">$wpdb</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-identifier">is_null</span><span class="hl-brackets">(</span><span class="hl-var">$postdata</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-reserved">global</span><span class="hl-code"> </span><span class="hl-var">$post</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-reserved">else</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-identifier">is_numeric</span><span class="hl-brackets">(</span><span class="hl-var">$postdata</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                </span><span class="hl-var">$post</span><span class="hl-code"> = </span><span class="hl-identifier">get_post</span><span class="hl-brackets">(</span><span class="hl-var">$postdata</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">int</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-var">$postdata</span><span class="hl-code">, </span><span class="hl-identifier">OBJECT</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-reserved">elseif</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-var">$postdata</span><span class="hl-code"> </span><span class="hl-identifier">instanceof</span><span class="hl-code"> </span><span class="hl-identifier">stdClass</span><span class="hl-code"> &amp;&amp; </span><span class="hl-identifier">is_propety</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">post_type</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$postdata</span><span class="hl-brackets">)</span><span class="hl-code"> &amp;&amp; </span><span class="hl-var">$postdata</span><span class="hl-code">-&gt;</span><span class="hl-identifier">post_type</span><span class="hl-code"> === </span><span class="hl-quotes">'</span><span class="hl-string">post</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                </span><span class="hl-var">$post</span><span class="hl-code"> = </span><span class="hl-var">$postdata</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-reserved">empty</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$post</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-reserved">null</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-var">$current_post_date</span><span class="hl-code"> = </span><span class="hl-var">$post</span><span class="hl-code">-&gt;</span><span class="hl-identifier">post_date</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-var">$join</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-var">$posts_in_ex_cats_sql</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$in_same_cat</span><span class="hl-code"> || ! </span><span class="hl-reserved">empty</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$excluded_categories</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-var">$join</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-string"> INNER JOIN </span><span class="hl-var">$wpdb</span><span class="hl-string">-&gt;term_relationships AS tr ON p.ID = tr.object_id INNER JOIN </span><span class="hl-var">$wpdb</span><span class="hl-string">-&gt;term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id</span><span class="hl-quotes">&quot;</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$in_same_cat</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                </span><span class="hl-var">$cat_array</span><span class="hl-code"> = </span><span class="hl-identifier">wp_get_object_terms</span><span class="hl-brackets">(</span><span class="hl-var">$post</span><span class="hl-code">-&gt;</span><span class="hl-identifier">ID</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">category</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">fields</span><span class="hl-quotes">'</span><span class="hl-code"> =&gt; </span><span class="hl-quotes">'</span><span class="hl-string">ids</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;                </span><span class="hl-var">$join</span><span class="hl-code"> .= </span><span class="hl-quotes">&quot;</span><span class="hl-string"> AND tt.taxonomy = 'category' AND tt.term_id IN (</span><span class="hl-quotes">&quot;</span><span class="hl-code"> . </span><span class="hl-identifier">implode</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">,</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$cat_array</span><span class="hl-brackets">)</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-string">)</span><span class="hl-quotes">&quot;</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-var">$posts_in_ex_cats_sql</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-string">AND tt.taxonomy = 'category'</span><span class="hl-quotes">&quot;</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> ! </span><span class="hl-reserved">empty</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$excluded_categories</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> ! </span><span class="hl-identifier">is_array</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$excluded_categories</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                    </span><span class="hl-comment">//</span><span class="hl-comment"> back-compat, $excluded_categories used to be IDs separated by &quot; and &quot;</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                    </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-identifier">strpos</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$excluded_categories</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string"> and </span><span class="hl-quotes">'</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> !== </span><span class="hl-reserved">false</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                        </span><span class="hl-identifier">_deprecated_argument</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-reserved">__FUNCTION__</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">3.3</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">sprintf</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-identifier">__</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">Use commas instead of %s to separate excluded categories.</span><span class="hl-quotes">'</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">'and'</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;                        </span><span class="hl-var">$excluded_categories</span><span class="hl-code"> = </span><span class="hl-identifier">explode</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string"> and </span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$excluded_categories</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;                    </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-reserved">else</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                        </span><span class="hl-var">$excluded_categories</span><span class="hl-code"> = </span><span class="hl-identifier">explode</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">,</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$excluded_categories</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;                    </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;                </span><span class="hl-var">$excluded_categories</span><span class="hl-code"> = </span><span class="hl-identifier">array_map</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">intval</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$excluded_categories</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;                </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> ! </span><span class="hl-reserved">empty</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$cat_array</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                    </span><span class="hl-var">$excluded_categories</span><span class="hl-code"> = </span><span class="hl-identifier">array_diff</span><span class="hl-brackets">(</span><span class="hl-var">$excluded_categories</span><span class="hl-code">, </span><span class="hl-var">$cat_array</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;                    </span><span class="hl-var">$posts_in_ex_cats_sql</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;                </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;                </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> !</span><span class="hl-reserved">empty</span><span class="hl-brackets">(</span><span class="hl-var">$excluded_categories</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                    </span><span class="hl-var">$posts_in_ex_cats_sql</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-string"> AND tt.taxonomy = 'category' AND tt.term_id NOT IN (</span><span class="hl-quotes">&quot;</span><span class="hl-code"> . </span><span class="hl-identifier">implode</span><span class="hl-brackets">(</span><span class="hl-var">$excluded_categories</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">,</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">)</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;                </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-var">$adjacent</span><span class="hl-code"> = </span><span class="hl-var">$previous</span><span class="hl-code"> ? </span><span class="hl-quotes">'</span><span class="hl-string">previous</span><span class="hl-quotes">'</span><span class="hl-code"> : </span><span class="hl-quotes">'</span><span class="hl-string">next</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-var">$op</span><span class="hl-code"> = </span><span class="hl-var">$previous</span><span class="hl-code"> ? </span><span class="hl-quotes">'</span><span class="hl-string">&lt;</span><span class="hl-quotes">'</span><span class="hl-code"> : </span><span class="hl-quotes">'</span><span class="hl-string">&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-var">$order</span><span class="hl-code"> = </span><span class="hl-var">$previous</span><span class="hl-code"> ? </span><span class="hl-quotes">'</span><span class="hl-string">DESC</span><span class="hl-quotes">'</span><span class="hl-code"> : </span><span class="hl-quotes">'</span><span class="hl-string">ASC</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-var">$join</span><span class="hl-code">  = </span><span class="hl-identifier">apply_filters</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-quotes">&quot;</span><span class="hl-string">get_</span><span class="hl-var">{$adjacent}</span><span class="hl-string">_post_join</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-var">$join</span><span class="hl-code">, </span><span class="hl-var">$in_same_cat</span><span class="hl-code">, </span><span class="hl-var">$excluded_categories</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-var">$where</span><span class="hl-code"> = </span><span class="hl-identifier">apply_filters</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-quotes">&quot;</span><span class="hl-string">get_</span><span class="hl-var">{$adjacent}</span><span class="hl-string">_post_where</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-var">$wpdb</span><span class="hl-code">-&gt;</span><span class="hl-identifier">prepare</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">WHERE p.post_date </span><span class="hl-var">$op</span><span class="hl-string"> %s AND p.post_type = %s AND p.post_status = 'publish' </span><span class="hl-var">$posts_in_ex_cats_sql</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-var">$current_post_date</span><span class="hl-code">, </span><span class="hl-var">$post</span><span class="hl-code">-&gt;</span><span class="hl-identifier">post_type</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-var">$in_same_cat</span><span class="hl-code">, </span><span class="hl-var">$excluded_categories</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-var">$sort</span><span class="hl-code">  = </span><span class="hl-identifier">apply_filters</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-quotes">&quot;</span><span class="hl-string">get_</span><span class="hl-var">{$adjacent}</span><span class="hl-string">_post_sort</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">ORDER BY p.post_date </span><span class="hl-var">$order</span><span class="hl-string"> LIMIT 1</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-var">$query</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-string">SELECT p.* FROM </span><span class="hl-var">$wpdb</span><span class="hl-string">-&gt;posts AS p </span><span class="hl-var">$join</span><span class="hl-string"> </span><span class="hl-var">$where</span><span class="hl-string"> </span><span class="hl-var">$sort</span><span class="hl-quotes">&quot;</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-var">$query_key</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">adjacent_post_</span><span class="hl-quotes">'</span><span class="hl-code"> . </span><span class="hl-identifier">md5</span><span class="hl-brackets">(</span><span class="hl-var">$query</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-var">$result</span><span class="hl-code"> = </span><span class="hl-identifier">wp_cache_get</span><span class="hl-brackets">(</span><span class="hl-var">$query_key</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">counts</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-reserved">false</span><span class="hl-code"> !== </span><span class="hl-var">$result</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-var">$result</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-var">$result</span><span class="hl-code"> = </span><span class="hl-var">$wpdb</span><span class="hl-code">-&gt;</span><span class="hl-identifier">get_row</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">SELECT p.* FROM </span><span class="hl-var">$wpdb</span><span class="hl-string">-&gt;posts AS p </span><span class="hl-var">$join</span><span class="hl-string"> </span><span class="hl-var">$where</span><span class="hl-string"> </span><span class="hl-var">$sort</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-reserved">null</span><span class="hl-code"> === </span><span class="hl-var">$result</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-var">$result</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-identifier">wp_cache_set</span><span class="hl-brackets">(</span><span class="hl-var">$query_key</span><span class="hl-code">, </span><span class="hl-var">$result</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">counts</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-var">$result</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>これでループ作らなくても利用できる。</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">functions.php</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-var">$next</span><span class="hl-code"> = </span><span class="hl-identifier">my_get_adjacent_post</span><span class="hl-brackets">(</span><span class="hl-number">5</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-var">$prev</span><span class="hl-code"> = </span><span class="hl-identifier">my_get_adjacent_post</span><span class="hl-brackets">(</span><span class="hl-number">5</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">echo</span><span class="hl-code"> </span><span class="hl-var">$next</span><span class="hl-code">-&gt;</span><span class="hl-identifier">title</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">echo</span><span class="hl-code"> </span><span class="hl-var">$prev</span><span class="hl-code">-&gt;</span><span class="hl-identifier">title</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>
それにしてもループ内でしか使えないとかおかしいので、実はちゃんととれる関数があるかもしれない。
</p>


                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/WordPress-%E9%80%86%E5%BC%95%E3%81%8D%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E4%BA%8B%E5%85%B8PLUS-%EF%BC%BB3-x%E5%AF%BE%E5%BF%9C%EF%BC%BD-%E4%B8%89%E6%9C%A8-%E5%BE%B9/dp/4798123277%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4798123277" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/61VMQUVNt8L._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/WordPress-%E9%80%86%E5%BC%95%E3%81%8D%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E4%BA%8B%E5%85%B8PLUS-%EF%BC%BB3-x%E5%AF%BE%E5%BF%9C%EF%BC%BD-%E4%B8%89%E6%9C%A8-%E5%BE%B9/dp/4798123277%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4798123277" rel="nofollow">WordPress 逆引きデザイン事典PLUS ［3.x対応］</a></h3>
                        <p>作者:林 亮 | 価格:￥ 3,129</p>
                    </div>
                    </div>
                </div>
                
<div class="referTo">
    <h5 class="headline">参照ページ</h5>
    <ul>
    <li><a href="http://codex.wordpress.org/Function_Reference/get_adjacent_post">Function Reference/get adjacent post « WordPress Codex</a></li>
    </ul>
</div>]]>
    </content>
</entry>

<entry>
    <title>[PHP] is_a() と Zend_Loader_Autoloader::autoload()</title>
    <link rel="alternate" type="text/html" href="http://www.kantenna.com/pg/2012/01/php_is_a.php" />
    <id>tag:www.kantenna.com,2012:/pg//7.1250</id>

    <published>2012-01-07T12:52:25Z</published>
    <updated>2012-01-07T13:40:11Z</updated>

    <summary>Zend_Loader_Autoloader::autoload()を利用していて、is_a()の第1引数がパスっぽいものだとWarningが発生する。</summary>
    <author>
        <name>caquu</name>
        <uri>http://www.kantenna.com/</uri>
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="zendframework" label="Zend Framework" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="エラーコード" label="エラーコード" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="関数" label="関数" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.kantenna.com/pg/">
        <![CDATA[<p>
Zend_Loader_Autoloader::autoload()を利用していて、is_a()の第1引数がパスっぽいものだとWarningが発生する。
</p>
]]>
        <![CDATA[
            <div class="source"><div class="standard">
                <h5 class="sourceTitle">PHP</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-var">$obj</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">stdClass</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-var">$str</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">文字列</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-var">$path</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">/path/to/file/</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-identifier">var_dump</span><span class="hl-brackets">(</span><span class="hl-identifier">is_a</span><span class="hl-brackets">(</span><span class="hl-var">$obj</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">stdClass</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;    </span><span class="hl-comment">//</span><span class="hl-comment"> true</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-identifier">var_dump</span><span class="hl-brackets">(</span><span class="hl-identifier">is_a</span><span class="hl-brackets">(</span><span class="hl-var">$str</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">stdClass</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;    </span><span class="hl-comment">//</span><span class="hl-comment"> false</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-identifier">var_dump</span><span class="hl-brackets">(</span><span class="hl-identifier">is_a</span><span class="hl-brackets">(</span><span class="hl-var">$path</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">stdClass</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;   </span><span class="hl-comment">//</span><span class="hl-comment"> false だけど Warning: include_once(/path/to/file/.php) がでる。</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-identifier">var_dump</span><span class="hl-brackets">(</span><span class="hl-var">$obj</span><span class="hl-code"> </span><span class="hl-identifier">instanceof</span><span class="hl-code"> </span><span class="hl-identifier">stdClass</span><span class="hl-brackets">)</span><span class="hl-code">;  </span><span class="hl-comment">//</span><span class="hl-comment"> true</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-identifier">var_dump</span><span class="hl-brackets">(</span><span class="hl-var">$str</span><span class="hl-code"> </span><span class="hl-identifier">instanceof</span><span class="hl-code"> </span><span class="hl-identifier">stdClass</span><span class="hl-brackets">)</span><span class="hl-code">;  </span><span class="hl-comment">//</span><span class="hl-comment"> false</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-identifier">var_dump</span><span class="hl-brackets">(</span><span class="hl-var">$path</span><span class="hl-code"> </span><span class="hl-identifier">instanceof</span><span class="hl-code"> </span><span class="hl-identifier">stdClass</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">//</span><span class="hl-comment"> false</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>キャストするのもいいけど、is_a()はバージョンによってE_STRICTで引っかかったり挙動が変わったりといろいろあるみたいなので、PHP 5.1.0より上であればinstanceofを利用した方がよさそう。</p>

<div class="referText">
    <blockquote>
    注意すべき落とし穴があります。PHP 5.1.0 より前のバージョンでは、 instanceof は、クラス名が存在しない場合に __autoload() をコールしていました。 さらに、クラスが読み込めなかった場合に致命的なエラーが発生していました。 この問題の回避策としては、動的なクラス参照を使用するか、 クラス名を含む文字列変数を使用します。
    </blockquote>

    <blockquote>
    instanceof 演算子は PHP 5 から使用可能になりました。 それ以前には is_a() が使用されていましたが、 現在は is_a() は推奨されておらず、 instanceof の使用が推奨されています。 PHP 5.3.0 以降、is_a() は非推奨ではなくなったことに注意しましょう。
    </blockquote>
    <p><a href="http://php.net/manual/ja/language.operators.type.php">PHP: 型演算子 - Manual</a></p>
</div>


<div class="referText">
    <blockquote>
    大きな修正点として、is_a関数の挙動が挙げられています。autoload機能を使ってクラスをロードしている場合への対応と思われますが、PHP5.3.7以降挙動が変更されていたのですが、PHP5.3.9RC1ではデフォルトの挙動を元に戻したようです。
    </blockquote>
    <p><a href="http://d.hatena.ne.jp/shimooka/20111104">2011-11-04 - Do You PHP はてな</a></p>
</div>


                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/PHP-%E9%80%86%E5%BC%95%E3%81%8D%E3%83%AC%E3%82%B7%E3%83%94-PROGRAMMER%E2%80%99S-RECiPE-%E9%88%B4%E6%9C%A8/dp/4798119865%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4798119865" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/518bklf0j0L._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/PHP-%E9%80%86%E5%BC%95%E3%81%8D%E3%83%AC%E3%82%B7%E3%83%94-PROGRAMMER%E2%80%99S-RECiPE-%E9%88%B4%E6%9C%A8/dp/4798119865%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4798119865" rel="nofollow">PHP 逆引きレシピ (PROGRAMMER’S RECiPE)</a></h3>
                        <p>作者:河合 勝彦 | 価格:￥ 2,730</p>
                    </div>
                    </div>
                </div>
                ]]>
    </content>
</entry>

<entry>
    <title>[WordPress]アバウトなis_home()</title>
    <link rel="alternate" type="text/html" href="http://www.kantenna.com/pg/2011/12/wordpressis_home.php" />
    <id>tag:www.kantenna.com,2011:/pg//7.1249</id>

    <published>2011-12-22T16:31:52Z</published>
    <updated>2011-12-22T16:34:45Z</updated>

    <summary>/wp-signup.php、/wp-activate.phpにアクセスした場合もtrueが返るis_home()</summary>
    <author>
        <name>caquu</name>
        <uri>http://www.kantenna.com/</uri>
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="wordpress" label="WordPress" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.kantenna.com/pg/">
        <![CDATA[<p><a href="http://terabenote.net/archives/1169/">query_posts()を使うとfalseになる</a>とかの問題もあるis_home()。</p>]]>
        <![CDATA[<p>
ついでに/wp-signup.php、/wp-activate.phpにアクセスした場合もtrueが返る。
WordPress 3.3、マルチサイトON。ちなみにWordPress 3.1でもこの問題は存在していた。
</p>


<div class="referText">
    <blockquote>
    この条件分岐タグは、サイトのメインページ（ホームページ）が表示されているかどうかを判定します。これは TRUE または FALSE の値を返す boolean 関数です。
    注: WordPress 2.1 以降からこの関数の動作が変わりました。静的フロントページ機能を利用（固定ページをフロントページに表示）している場合は、「投稿ページ」でこの判定が真となります（is_front_page()もご覧ください）。
    </blockquote>
    <p><a href="http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/is_home">関数リファレンス/is home - WordPress Codex 日本語版</a></p>
</div>

<p>
サイトのメインページってWordPressの定義ではインストールディレクトリ直下のファイルはメインページって扱いなのだろうか？
2個所あるとバグなのか仕様なのかよくわからん。
</p>

<p>まぁ、あんまり困ることもないと思うけど。</p>


                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/PHP%E3%81%AB%E3%82%88%E3%82%8BWordPress%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%83%96%E3%83%83%E3%82%AF%E2%80%953-x%E5%AF%BE%E5%BF%9C-%E8%97%A4%E6%9C%AC-%E5%A3%B1/dp/488337730X%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D488337730X" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/51wTz7ZVbmL._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/PHP%E3%81%AB%E3%82%88%E3%82%8BWordPress%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%83%96%E3%83%83%E3%82%AF%E2%80%953-x%E5%AF%BE%E5%BF%9C-%E8%97%A4%E6%9C%AC-%E5%A3%B1/dp/488337730X%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D488337730X" rel="nofollow">PHPによるWordPressカスタマイズブック―3.x対応</a></h3>
                        <p>作者:藤本 壱 | 価格:￥ 2,940</p>
                    </div>
                    </div>
                </div>
                
                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/Web%E3%82%B5%E3%82%A4%E3%83%88%E5%88%B6%E4%BD%9C%E8%80%85%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE-PHP%E5%85%A5%E9%96%80%E8%AC%9B%E5%BA%A7-%E9%88%B4%E6%9C%A8-%E6%86%B2%E6%B2%BB/dp/4774145254%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4774145254" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/51z5sYV4lcL._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/Web%E3%82%B5%E3%82%A4%E3%83%88%E5%88%B6%E4%BD%9C%E8%80%85%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE-PHP%E5%85%A5%E9%96%80%E8%AC%9B%E5%BA%A7-%E9%88%B4%E6%9C%A8-%E6%86%B2%E6%B2%BB/dp/4774145254%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4774145254" rel="nofollow">Webサイト制作者のための PHP入門講座</a></h3>
                        <p>作者:小出 範明 | 価格:￥ 3,129</p>
                    </div>
                    </div>
                </div>
                ]]>
    </content>
</entry>

<entry>
    <title>[WordPress] Zend_Loader_Autoloader を使うとWarning</title>
    <link rel="alternate" type="text/html" href="http://www.kantenna.com/pg/2011/12/wordpress_zend_loader_autoloader_warning.php" />
    <id>tag:www.kantenna.com,2011:/pg//7.1248</id>

    <published>2011-12-21T16:05:53Z</published>
    <updated>2011-12-21T16:17:59Z</updated>

    <summary>WordPress 3.3。Zend_Loader_Autoloaderでクラスのオートロードしたら管理画面でWarning出現。</summary>
    <author>
        <name>caquu</name>
        <uri>http://www.kantenna.com/</uri>
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="wordpress" label="WordPress" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="エラー" label="エラー" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.kantenna.com/pg/">
        <![CDATA[<p>WordPress 3.3。Zend_Loader_Autoloaderでクラスのオートロードしたら管理画面でWarning出現。</p>
]]>
        <![CDATA[

            <div class="source"><div class="standard">
                <h5 class="sourceTitle">PHP</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-var">$zend</span><span class="hl-code"> = </span><span class="hl-identifier">Zend_Loader_Autoloader</span><span class="hl-code">::</span><span class="hl-identifier">getInstance</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-var">$zend</span><span class="hl-code">-&gt;</span><span class="hl-identifier">setFallbackAutoloader</span><span class="hl-brackets">(</span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>
原因は<span class="path">wp-admin/includes/deprecated.php</span>の291行目の
</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">PHP</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> !</span><span class="hl-identifier">class_exists</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">WP_User_Search</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> :</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>...。</p>

<p>対処するには</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">PHP</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> !</span><span class="hl-identifier">class_exists</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">WP_User_Search</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> :</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>
ってするか、ぶち消すか。deprecatedだしいいよねｗ
Zendのオートローダーって結構使われてるだろうし、そのうち修正されると期待しておこう。
</p>

<h4>追記</h4>
<p>上記だけじゃなく編集画面でも発生wコアでもプラグインでもclass_existsは結構使われてるので、面倒なので対処はあきらめたほうがよさそうｗ</p>


                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/WordPress-%E9%80%86%E5%BC%95%E3%81%8D%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E4%BA%8B%E5%85%B8PLUS-%EF%BC%BB3-x%E5%AF%BE%E5%BF%9C%EF%BC%BD-%E4%B8%89%E6%9C%A8-%E5%BE%B9/dp/4798123277%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4798123277" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/61VMQUVNt8L._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/WordPress-%E9%80%86%E5%BC%95%E3%81%8D%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E4%BA%8B%E5%85%B8PLUS-%EF%BC%BB3-x%E5%AF%BE%E5%BF%9C%EF%BC%BD-%E4%B8%89%E6%9C%A8-%E5%BE%B9/dp/4798123277%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4798123277" rel="nofollow">WordPress 逆引きデザイン事典PLUS ［3.x対応］</a></h3>
                        <p>作者:林 亮 | 価格:￥ 3,129</p>
                    </div>
                    </div>
                </div>
                
                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/PHP-%E9%80%86%E5%BC%95%E3%81%8D%E3%83%AC%E3%82%B7%E3%83%94-PROGRAMMER%E2%80%99S-RECiPE-%E9%88%B4%E6%9C%A8/dp/4798119865%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4798119865" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/518bklf0j0L._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/PHP-%E9%80%86%E5%BC%95%E3%81%8D%E3%83%AC%E3%82%B7%E3%83%94-PROGRAMMER%E2%80%99S-RECiPE-%E9%88%B4%E6%9C%A8/dp/4798119865%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4798119865" rel="nofollow">PHP 逆引きレシピ (PROGRAMMER’S RECiPE)</a></h3>
                        <p>作者:河合 勝彦 | 価格:￥ 2,730</p>
                    </div>
                    </div>
                </div>
                
<div class="referTo">
    <h5 class="headline">参照サイト</h5>
    <ul>
        <li><a href="http://php.net/manual/ja/function.class-exists.php">PHP: class_exists - Manual</a></li>
    </ul>
</div>]]>
    </content>
</entry>

<entry>
    <title>[WordPress] テンプレートルーティングのメモ</title>
    <link rel="alternate" type="text/html" href="http://www.kantenna.com/pg/2011/12/wordpress_template.php" />
    <id>tag:www.kantenna.com,2011:/pg//7.1247</id>

    <published>2011-12-18T19:40:42Z</published>
    <updated>2011-12-28T14:05:34Z</updated>

    <summary>WordPressが呼びだすテンプレートをTEMPLATEPATH直下じゃなくてTEMPLATEPATH/views/とかにできるのか調べた時のメモ。
バージョンはWordPress 3.3 日本語版。</summary>
    <author>
        <name>caquu</name>
        <uri>http://www.kantenna.com/</uri>
    </author>
    
        <category term="PHP" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="wordpress" label="WordPress" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.kantenna.com/pg/">
        <![CDATA[<p>
WordPressが呼びだすテンプレートをTEMPLATEPATH直下じゃなくて<span class="path">TEMPLATEPATH/views/</span>とかにできるのか調べた時のメモ。
バージョンはWordPress 3.3 日本語版。
</p>]]>
        <![CDATA[<h3>wp_includes/tempate_loader.php</h3>
<p>テンプレートの選択、呼び出しはこのファイルで実行される。</p>


<h4>template_redirectアクション</h4>

<div class="referText">
    <blockquote>
    リクエストされたページの表示に使用するテンプレートファイルを判断する前に実行し、プラグインがテンプレートファイルの選択を上書きできるようにする。
    </blockquote>
    <p><a href="http://wpdocs.sourceforge.jp/%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3_API/%E3%82%A2%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%95%E3%83%83%E3%82%AF%E4%B8%80%E8%A6%A7">プラグイン API/アクションフック一覧 - WordPress Codex 日本語版</a></p>
</div>


<p>
とあるが、基本的にここで何をしようが、次のテンプレート選択処理に入る気がする。例外投げるとかdieするとかリダイレクトするとかすれば別だが。
なのでtemplate_redirectはテンプレートファイルの選択を上書きというより、
wordpressがテンプレートを読み込む前に、リダイレクトしたいとか何らかの処理をしたい場合に利用するものっぽい。
</p>

<p>
本当にここでテンプレート選択処理をしたいのなら、/index.phpで設定されてる
</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">PHP</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">define</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">WP_USE_THEMES</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>
を削除するかfalseにすればテンプレート選択処理には入らないので、リダイレクト先のファイルで
テンプレートのルーティングを実装すればよい。
このファイルってコアに含まれるのだろうか？
</p>

<p>
で、WordPressがルーティングしたテンプレートを変更したい場合。
</p>

<h3>ルーティングしたいテンプレートが決まっている場合。</h3>

<p>
wp_includes/theme.phpのget_query_template()関数内で設定されている
<span class="keyword">{$type}_template</span>フィルターを利用する。
</p>

<p>$typeには、indexとか404とかcategoryとか呼ばれるテンプレートのタイプ名?が入る。</p>


<p>
WordPressをサイトの一部として利用していて、404はサイトのものを利用したい場合。
まぁ404.phpから呼び出すとかでもいいんだけど例ってことで。
</p>



            <div class="source"><div class="standard">
                <h5 class="sourceTitle">PHP</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-identifier">add_filter</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">404_template</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">my_404_template</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$templates</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">my_404_template</span><span class="hl-brackets">(</span><span class="hl-var">$template</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-var">$_SERVER</span><span class="hl-brackets">[</span><span class="hl-quotes">'</span><span class="hl-string">DOCUMENT_ROOT</span><span class="hl-quotes">'</span><span class="hl-brackets">]</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">/errors/404.php</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>
$templateにはWordPressのルーティングで決定されたテンプレートのパスが入る。
この場合、
</p>

<p><span class="path">ABSPATH/wp-content/themes/theme_name/404.php</span></p>

<p>のように。</p>


<h3>全てをルーティングしたい場合</h3>

<p>
template_loader.php内でテンプレートが呼ばれる直前に
<span class="keyword">apply_filters( 'template_include', $template )</span>というフィルタが
設定されているのでこれにフックすればよい。
</p>

<p>
$templateはインクルードされるテンプレートのフルパス。
function.php内でこんな感じで設定する。
</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">PHP</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-identifier">add_filter</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">template_include</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">my_template_include</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$template</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">my_template_include</span><span class="hl-brackets">(</span><span class="hl-var">$template</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-var">$name</span><span class="hl-code"> = </span><span class="hl-identifier">pathinfo</span><span class="hl-brackets">(</span><span class="hl-var">$template</span><span class="hl-code">, </span><span class="hl-identifier">PATHINFO_FILENAME</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">switch</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-var">$name</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">case</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">404</span><span class="hl-quotes">'</span><span class="hl-code">:</span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-var">$load_file</span><span class="hl-code"> = </span><span class="hl-var">$_SERVER</span><span class="hl-brackets">[</span><span class="hl-quotes">'</span><span class="hl-string">DOCUMENT_ROOT</span><span class="hl-quotes">'</span><span class="hl-brackets">]</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">/errors/404.php</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-identifier">brea</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-reserved">default</span><span class="hl-code">:</span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-var">$load_file</span><span class="hl-code"> = </span><span class="hl-var">$template</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;            </span><span class="hl-reserved">break</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-var">$load_file</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            



<p>
ただ、この場合テーマ直下をindex.phpとfunction.phpとstyle.cssだけにした場合
$templateにはindex.phpしか入ってこない。
</p>

<p>
WordPressのテンプレート階層はTEMPLATEPATHにあるファイルの存在を確認することで決定しているので
<span class="path">TEMPLATEPATH/views/</span>をテンプレート設置場所にしたい場合、TEMPLATEPATH自体を変更しないといけない。
</p>


<p>
ただfunction.phpが呼ばれる時点ではTEMPLATEPATHは決定されているので、ここがfunction.phpの限界点。
TEMPLATEPATHを変更するにはプラグインを利用する必要がある。
</p>



<h3>TEMPLATEPATHの変更</h3>


<p>
TEMPLATEPATHはwp-includes/theme.phpのget_template_directory()の実行結果で決まっていて、この関数では
</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">PHP</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-identifier">apply_filters</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-quotes">'</span><span class="hl-string">template_directory</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$template_dir</span><span class="hl-code">, </span><span class="hl-var">$template</span><span class="hl-code">, </span><span class="hl-var">$theme_root</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            <p>が設定されているので、プラグインで、</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">PHP</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-identifier">template_directory</span><span class="hl-brackets">(</span><span class="hl-var">$template_dir</span><span class="hl-code">, </span><span class="hl-var">$template</span><span class="hl-code">, </span><span class="hl-var">$theme_root</span><span class="hl-brackets">)</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-var">$template_dir</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">/views/</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>
とすることで、TEMPLATEPATHの変更が可能となる。
でもってテンプレートが呼び出される直前で実行される<span class="keyword">template_include</span>に
</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">PHP</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-identifier">add_filter</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">template_include</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">my_template_include</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$template</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">my_template_include</span><span class="hl-brackets">(</span><span class="hl-var">$template</span><span class="hl-brackets">)</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-comment">//</span><span class="hl-comment"> グローバルなオブジェクトとか変数に</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-comment">//</span><span class="hl-comment"> 本来呼び出されるファイルのパスを保存。</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-identifier">Configure</span><span class="hl-code">::</span><span class="hl-identifier">write</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">View.file</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-var">$template</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-comment">//</span><span class="hl-comment"> WordPressは常にテーマ直下のindex.phpを呼び出す</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-identifier">get_theme_root</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> . </span><span class="hl-identifier">DS</span><span class="hl-code"> . </span><span class="hl-identifier">get_template</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> . </span><span class="hl-identifier">DS</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">index.php</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>としておくことでテーマ直下のindex.phpからテンプレートをビューとして呼び出せる。</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">PHP</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;&lt;</span><span class="hl-identifier">html</span><span class="hl-code">&gt;</span></li>
<li><span class="hl-code">&nbsp;    &lt;</span><span class="hl-identifier">head</span><span class="hl-code">&gt;</span></li>
<li><span class="hl-code">&nbsp;    &lt;/</span><span class="hl-identifier">head</span><span class="hl-code">&gt;</span></li>
<li><span class="hl-code">&nbsp;    &lt;</span><span class="hl-identifier">body</span><span class="hl-code">&gt;</span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;        &lt;?</span><span class="hl-identifier">php</span><span class="hl-code"> </span><span class="hl-reserved">require_once</span><span class="hl-brackets">(</span><span class="hl-identifier">Configure</span><span class="hl-code">::</span><span class="hl-identifier">read</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">View.file</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-inlinetags">?&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;    &lt;/body&gt;</span></li>
<li><span class="hl-code">&nbsp;&lt;/html&gt;</span></li>
<li><span class="hl-code">&nbsp;?&gt;</span></li></ol></div>
            </div></div>
            

<p>
これでCakePHPのように<a href="http://www.kantenna.com/pg/2011/02/view_layout.php">ビューとレイアウトを分けること</a>が出来そうな気がする。
まだ実装はしてないのでわからんけどｗ
</p>


<h4>追記</h4>
<p>ファイル確認はSTYLESHEETPATHが優先されるので、テーマ直下がSTYLESHEETPATHで、index.phpを呼び出すパターンの場合、上記だとviews/index.phpではなくテーマ直下のindex.phpが選択される。なので</p>


            <div class="source"><div class="standard">
                <h5 class="sourceTitle">PHP</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-inlinetags">&lt;?php</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-comment">//</span><span class="hl-comment"> WordPressは常にテーマ直下のfront_controller.phpを呼び出す</span><span class="hl-comment"></span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-identifier">get_theme_root</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> . </span><span class="hl-identifier">DS</span><span class="hl-code"> . </span><span class="hl-identifier">get_template</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> . </span><span class="hl-identifier">DS</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">front_controller.php</span><span class="hl-quotes">'</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-inlinetags">?&gt;</span></li></ol></div>
            </div></div>
            
<p>など、フロントコントローラーはWordPressのテンプレート階層で利用されないファイル名にした方がよい。</p>


<h3>その他メモ</h3>
<ul>
<li>
funtions.phpはTEMPLATEPATHとSTYLESHEETPATHが異なる場合、STYLESHEETPATHが最初に検索され
存在しない場合、TEMPLATEPATHも検索するのでどちらにおいてもよい。
</li>

<li>
get_header()など使わなくなるので、そこらへんのアクションにフックされているプラグインとかは動かなくなる。
使いたい場合、自分でトリガーすればよい。
</li>

</ul>

                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/%E5%9F%BA%E6%9C%AC%E3%81%8B%E3%82%89%E3%81%97%E3%81%A3%E3%81%8B%E3%82%8A%E3%82%8F%E3%81%8B%E3%82%8B-WordPress-3%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%83%96%E3%83%83%E3%82%AF-Web-Designing-Books/dp/4839936072%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4839936072" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/51mZVyTmYIL._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/%E5%9F%BA%E6%9C%AC%E3%81%8B%E3%82%89%E3%81%97%E3%81%A3%E3%81%8B%E3%82%8A%E3%82%8F%E3%81%8B%E3%82%8B-WordPress-3%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA%E3%83%96%E3%83%83%E3%82%AF-Web-Designing-Books/dp/4839936072%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4839936072" rel="nofollow">基本からしっかりわかる　WordPress 3カスタマイズブック (Web Designing Books)</a></h3>
                        <p>作者:大藤幹 | 価格:￥ 2,520</p>
                    </div>
                    </div>
                </div>
                ]]>
    </content>
</entry>

<entry>
    <title>[jQuery] もう＋演算子とはおさらば。jQuery Templates</title>
    <link rel="alternate" type="text/html" href="http://www.kantenna.com/pg/2011/12/jquery_templates.php" />
    <id>tag:www.kantenna.com,2011:/pg//7.1244</id>

    <published>2011-12-12T02:11:11Z</published>
    <updated>2011-12-12T02:24:50Z</updated>

    <summary>jQueryに1年以上前から公式なテンプレートエンジンがあった件</summary>
    <author>
        <name>caquu</name>
        <uri>http://www.kantenna.com/</uri>
    </author>
    
        <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="jquery" label="jQuery" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.kantenna.com/pg/">
        <![CDATA[<p>
いまさらながら、jQueryに公式なテンプレートプラグインあるの気がつきました。
もう一年以上前に出ていたんですね。まだベータだけどｗ
</p>]]>
        <![CDATA[<h3>.tmpl( [data] [, options] )</h3>

<p>
jQueryオブジェクト内のindexが0のDOM要素のコンテンツをテンプレートとし、dataで置き換えてくれます。
dataが配列の場合、Array.length回繰り返しレンダリングしてくれます。
</p>

<p>もちろんjQueryオブジェクトを返してくれるので、.appendTo()、.prependTo()、.insertAfter()、.insertBefore()でドキュメントにぶっこむことができます。</p>


            <div class="resultWrapper">
            <div class="resultWindow3">
                <h4 class="headline">サンプル</h4>
                
                <div class="preview">
                <h5 class="headline">実行結果</h5>
                <div class="jqTest1">
    <script id="template-1" type="text/x-jquery-tmpl">
        <li>[no.${no}] ${name}</li>
    </script>

    <div class="switches">
        <h5>アストロスイッチ</h5>
        <ul>
        </ul>
    </div>
</div>
                </div>
                <div class="codes">
                
            <div class="source"><div class="jssample">
                <h5 class="sourceTitle">Javascript</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code">$</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">#template-1</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">tmpl</span><span class="hl-brackets">(</span><span class="hl-brackets">[</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-identifier">no</span><span class="hl-code">: </span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-identifier">name</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">ロケット</span><span class="hl-quotes">'</span><span class="hl-brackets">}</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-identifier">no</span><span class="hl-code">: </span><span class="hl-number">2</span><span class="hl-code">, </span><span class="hl-identifier">name</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">ランチャー</span><span class="hl-quotes">'</span><span class="hl-brackets">}</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-identifier">no</span><span class="hl-code">: </span><span class="hl-number">3</span><span class="hl-code">, </span><span class="hl-identifier">name</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">ドリル</span><span class="hl-quotes">'</span><span class="hl-brackets">}</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-identifier">no</span><span class="hl-code">: </span><span class="hl-number">4</span><span class="hl-code">, </span><span class="hl-identifier">name</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">レーダー</span><span class="hl-quotes">'</span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">appendTo</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">.switches ul</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li></ol></div>
            </div></div>
            
            <div class="source"><div class="jssample">
                <h5 class="sourceTitle">HTML</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">jqTest1</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">script</span><span class="hl-code"> </span><span class="hl-var">id</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">template-1</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">type</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">text/x-jquery-tmpl</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-code">[no.${no}] ${name}</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">li</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">script</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">switches</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">h5</span><span class="hl-brackets">&gt;</span><span class="hl-code">アストロスイッチ</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">h5</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">ul</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">ul</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span></li></ol></div>
            </div></div>
            
                </div>
            </div>
            </div>
            

<h3>jQuery.tmpl( template [, data] [, options] )</h3>
<p>
.tmpl()がドキュメント内に記述された文字列をテンプレートとして利用するのに対し、
こちらはJavascriptの変数に入ってる文字列とか、その場でテンプレートを記述したい場合に便利です。
</p>

<h4>.tmplItem()</h4>
<p>
dataや、レンダリングに利用したデータはDOMツリー追加後に.tmplItem()で取得することができます。
(テンプレート内ではitem、dataが利用できる。)
</p>

<p>
.tmplItem()で返ってくるオブジェクトは、.nodes、.parent、.data、.tmpl、.tmpl()の第二引数で設定したdata、
のプロパティを持っています。
</p>


            <div class="resultWrapper">
            <div class="resultWindow4">
                <h4 class="headline">サンプル</h4>
                
<p>
クリックで料金をalert。.tmpl()の第二引数で渡したオブジェクトのtaxプロパティは.tmplItem().tax()で呼び出せる。
</p>

                <div class="preview">
                <h5 class="headline">実行結果</h5>
                <div class="jqTest2">
</div>
                </div>
                <div class="codes">
                
            <div class="source"><div class="jssample">
                <h5 class="sourceTitle">Javascript</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code">$</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">&lt;div&gt;</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-identifier">html</span><span class="hl-code">: $.</span><span class="hl-identifier">tmpl</span><span class="hl-brackets">(</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;              </span><span class="hl-quotes">'</span><span class="hl-string">&lt;p&gt;[&lt;b&gt;NO.${no}&lt;/b&gt;] ${name}&lt;/p&gt;</span><span class="hl-quotes">'</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;              </span><span class="hl-brackets">[</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                  </span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-identifier">no</span><span class="hl-code">: </span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-identifier">name</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">ロケット</span><span class="hl-quotes">'</span><span class="hl-code">,   </span><span class="hl-identifier">price</span><span class="hl-code">: </span><span class="hl-number">100</span><span class="hl-brackets">}</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;                  </span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-identifier">no</span><span class="hl-code">: </span><span class="hl-number">2</span><span class="hl-code">, </span><span class="hl-identifier">name</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">ランチャー</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">price</span><span class="hl-code">: </span><span class="hl-number">200</span><span class="hl-brackets">}</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;                  </span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-identifier">no</span><span class="hl-code">: </span><span class="hl-number">3</span><span class="hl-code">, </span><span class="hl-identifier">name</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">ドリル</span><span class="hl-quotes">'</span><span class="hl-code">,     </span><span class="hl-identifier">price</span><span class="hl-code">: </span><span class="hl-number">300</span><span class="hl-brackets">}</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;                  </span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-identifier">no</span><span class="hl-code">: </span><span class="hl-number">4</span><span class="hl-code">, </span><span class="hl-identifier">name</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">レーダー</span><span class="hl-quotes">'</span><span class="hl-code">,   </span><span class="hl-identifier">price</span><span class="hl-code">: </span><span class="hl-number">400</span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;              </span><span class="hl-brackets">]</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;              </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                  </span><span class="hl-identifier">tax</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">price</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;                           </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-identifier">price</span><span class="hl-code"> * </span><span class="hl-number">1.05</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;                       </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;              </span><span class="hl-brackets">}</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;          </span><span class="hl-brackets">)</span><span class="hl-code">,</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">class</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">switches</span><span class="hl-quotes">'</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">appendTo</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">.jqTest2</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">find</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">p</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">on</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">click</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">item</span><span class="hl-code"> = $</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">target</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">tmplItem</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-identifier">alert</span><span class="hl-brackets">(</span><span class="hl-identifier">item</span><span class="hl-code">.</span><span class="hl-identifier">tax</span><span class="hl-brackets">(</span><span class="hl-identifier">item</span><span class="hl-code">.</span><span class="hl-identifier">data</span><span class="hl-code">.</span><span class="hl-identifier">price</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li></ol></div>
            </div></div>
            
            <div class="source"><div class="jssample">
                <h5 class="sourceTitle">HTML</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">jqTest2</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span></li></ol></div>
            </div></div>
            
                </div>
            </div>
            </div>
            

<h3>{{html name}}</h3>
<p>
テンプレートに挿入される値は、レンダリング時にエスケープされますが
{{html name}}を利用するとエスケープなしでレンダリングされます。
</p>

<p>当然、外部の入力をいきなりこれで出力するとヤバいのでやめましょう。</p>



            <div class="resultWrapper">
            <div class="resultWindow5">
                <h4 class="headline">サンプル</h4>
                
                <div class="preview">
                <h5 class="headline">実行結果</h5>
                <div class="jqTest3">

    <script id="template-3" type="text/x-jquery-tmpl">
        <dl>
        <dt>デフォルト</dt>
        <dd>${name}</dd>
        </dl>

        <dl>
        <dt>html</dt>
        <dd>{{html name}}</dd>
        </dl>
    </script>

</div>
                </div>
                <div class="codes">
                
            <div class="source"><div class="jssample">
                <h5 class="sourceTitle">Javascript</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-code">$</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">#template-3</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;.</span><span class="hl-identifier">tmpl</span><span class="hl-brackets">(</span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-identifier">name</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">&lt;a href=&quot;http://www.caquu.com/&quot;&gt;www.caquu.com&lt;/a&gt;</span><span class="hl-quotes">'</span><span class="hl-code"> </span><span class="hl-brackets">}</span><span class="hl-brackets">)</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;.</span><span class="hl-identifier">appendTo</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">.jqTest3</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;</span></li></ol></div>
            </div></div>
            
            <div class="source"><div class="jssample">
                <h5 class="sourceTitle">HTML</h5>
                <div class="hl-main"><ol class="hl-main"><li>&nbsp;<span class="hl-brackets">&lt;</span><span class="hl-reserved">div</span><span class="hl-code"> </span><span class="hl-var">class</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">jqTest3</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">script</span><span class="hl-code"> </span><span class="hl-var">id</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">template-3</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-var">type</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">text/x-jquery-tmpl</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">dl</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">dt</span><span class="hl-brackets">&gt;</span><span class="hl-code">デフォルト</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">dt</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">dd</span><span class="hl-brackets">&gt;</span><span class="hl-code">${name}</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">dd</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">dl</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">dl</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">dt</span><span class="hl-brackets">&gt;</span><span class="hl-code">html</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">dt</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;</span><span class="hl-reserved">dd</span><span class="hl-brackets">&gt;</span><span class="hl-code">{{html name}}</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">dd</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;        </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">dl</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp;    </span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">script</span><span class="hl-brackets">&gt;</span><span class="hl-code"></span></li>
<li><span class="hl-code">&nbsp; </span></li>
<li><span class="hl-code">&nbsp;</span><span class="hl-brackets">&lt;/</span><span class="hl-reserved">div</span><span class="hl-brackets">&gt;</span></li></ol></div>
            </div></div>
            
                </div>
            </div>
            </div>
            

<h3>${name} = {{= name}}</h3>
<p>${name}は{{= name}}のショートハンドなので、どちらも同じ結果となります。</p>

<p>
PHP内で利用する場合、${name}がPHPの構文とかぶるので、エスケープする必要がありますが、
{{= name}}を使えばエスケープなしで利用できます。
</p>

<h3>その他</h3>
<p>
テンプレート内ではif文やeachなども利用可能です。さらにテンプレートのネスト等もできるようです。
詳しくは<a href="http://api.jquery.com/category/plugins/templates/">ドキュメント</a>を参照ください。
</p>

<h3>おまけ。</h3>
<p>
jQuery Templatesはご覧のようにjQueryで使いやすく仕上がってますが、ここまで大きくなくていい。
っていうかsprintf、str_replaceがあればなぁって思ってるかたはこちらがおススメです。
</p>

<div class="referTo">
    <h5 class="headline">参照ページ</h5>
    <ul>
    <li><a href="http://d.hatena.ne.jp/uupaa/20091214/1260737607">速くてコンパクトな JavaScript 用の sprintf の実装 - latest log</a></li>
    <li><a href="http://phpjs.org/functions/str_replace:527">JavaScript str_replace - php.js</a></li>
    </ul>
</div>


                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/%E3%83%86%E3%82%B9%E3%83%88%E9%A7%86%E5%8B%95JavaScript-Christian-Johansen/dp/4048707868%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4048707868" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/51g1mDqlfJL._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/%E3%83%86%E3%82%B9%E3%83%88%E9%A7%86%E5%8B%95JavaScript-Christian-Johansen/dp/4048707868%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4048707868" rel="nofollow">テスト駆動JavaScript</a></h3>
                        <p>作者:Christian Johansen | 価格:￥ 3,780</p>
                    </div>
                    </div>
                </div>
                
                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/jQuery%E3%82%AF%E3%83%83%E3%82%AF%E3%83%96%E3%83%83%E3%82%AF-jQuery-Community-Experts/dp/4873114683%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873114683" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/51dVUV4c1KL._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/jQuery%E3%82%AF%E3%83%83%E3%82%AF%E3%83%96%E3%83%83%E3%82%AF-jQuery-Community-Experts/dp/4873114683%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4873114683" rel="nofollow">jQueryクックブック</a></h3>
                        <p>作者:jQuery Community Experts | 価格:￥ 3,780</p>
                    </div>
                    </div>
                </div>
                
<div class="referTo">
    <h5 class="headline">参照ページ</h5>
    <ul>
    <li><a href="http://api.jquery.com/category/plugins/templates/">Templates - jQuery API</a></li>
    <li><a href="http://www.kantenna.com/reference/jquery/templates/">Templates API | KANTENNA.COM</a></li>
    </ul>
</div>


]]>
    </content>
</entry>

<entry>
    <title>[jQuery] jQuery入門前の話。</title>
    <link rel="alternate" type="text/html" href="http://www.kantenna.com/pg/2011/12/jquery_before.php" />
    <id>tag:www.kantenna.com,2011:/pg//7.1242</id>

    <published>2011-12-08T16:43:07Z</published>
    <updated>2011-12-08T16:54:57Z</updated>

    <summary>jQuery APIリファレンスをみて、jQuery.each()とjQuery(selector).each()のような同じ名前のメソッドで何が違うんだ？どう使い分けるんだ？と迷わないためのに。</summary>
    <author>
        <name>caquu</name>
        <uri>http://www.kantenna.com/</uri>
    </author>
    
        <category term="JavaScript" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="jquery" label="jQuery" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="基礎" label="基礎" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.kantenna.com/pg/">
        <![CDATA[<p>jQueryの概念というか役割というか、おおざっぱなイメージについて。jQueryの書き方とかの話じゃありません。</p>
<p>
<a href="http://api.jquery.com/">jQuery APIリファレンス</a>をみて、
jQuery.each()とjQuery(selector).each()のような同じ名前のメソッドで何が違うんだ？どう使い分けるんだ？
と迷わないためのお話です。
</p>]]>
        <![CDATA[


<p class="center"><img src="/storage/pg/jquery_before/01.jpg" />


<h3>リファレンスをおおざっぱに分類してみる</h3>

<h4>Selectors</h4>
<p>
<a href="http://api.jquery.com/category/selectors/">Selectors</a>はjQuery関数に渡す引数について、どのような書き方が出来るのか、
そしてどんなDOMが取得できるのか。についてです。
</p>

<h4>jQueryオブジェクトのメソッド</h4>
<p>
.hoge()のようにドットから始まっているものは、jQueryオブジェクトのメソッドで、
オブジェクトが持っているDOMに対して何かを設定、取得したいときに利用するもの。
</p>

<h4>jQuery関数のメソッド(関数)</h4>
<p>
jQuery.hoge()のようにjQueryから始まっているのは、jQuery関数のメソッド。
関数のメソッドってなんだよって思うかもしれませんが、Javascriptでは関数もオブジェクトなのでまぁクラス関数みたいなイメージかな？
</p>

<p>
素のJavascriptで作成したオブジェクトとかをjQueryで使える形にしたり、その逆をやったり。
Javascriptであったらいいなと思うメソッドがここにあったりする。
</p>

<h4>特殊なオブジェクト</h4>

<p>
それ以外は、jQueryが提供している特殊なオブジェクトに関するもの。
そんなものはそのうち覚えればいいと言いたいところだけど、eventは結構重要だったりします。
</p>

<p>次はイベントについて書くかも。</p>

<h3>jQuery関数の名称</h3>
<p>
jQuery関数という呼び方についてはJavascriptにおいて関数もオブジェクトなので、jQueryオブジェクトと呼ばれたり
本体と呼ばれたりもします。両方同じような名前で呼ばれたりするので混乱しないように気をつけましょう。
</p>

<p>
まぁほとんどjQueryオブジェクトの話ですけどｗ
</p>



                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/jQuery%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%96%E3%83%83%E3%82%AF-%E4%BB%95%E4%BA%8B%E3%81%A7%E7%B5%B6%E5%AF%BE%E3%81%AB%E4%BD%BF%E3%81%86%E3%83%97%E3%83%AD%E3%81%AE%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF-MdN%E7%B7%A8%E9%9B%86%E9%83%A8/dp/4844362135%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4844362135" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/51WW3AmdQvL._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/jQuery%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%96%E3%83%83%E3%82%AF-%E4%BB%95%E4%BA%8B%E3%81%A7%E7%B5%B6%E5%AF%BE%E3%81%AB%E4%BD%BF%E3%81%86%E3%83%97%E3%83%AD%E3%81%AE%E3%83%86%E3%82%AF%E3%83%8B%E3%83%83%E3%82%AF-MdN%E7%B7%A8%E9%9B%86%E9%83%A8/dp/4844362135%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4844362135" rel="nofollow">jQueryデザインブック　仕事で絶対に使うプロのテクニック</a></h3>
                        <p>作者:No Date | 価格:￥ 2,940</p>
                    </div>
                    </div>
                </div>
                
                <div class="amazonTypePhoto">
                    <div class="grid">
                    <div class="left"><p id="mainpicImg"><a href="http://www.amazon.co.jp/Web%E3%82%B5%E3%82%A4%E3%83%88%E5%88%B6%E4%BD%9C%E8%80%85%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE-JavaScript%E5%85%A5%E9%96%80%E8%AC%9B%E5%BA%A7-%E6%9D%89%E6%9C%AC-%E5%90%89%E7%AB%A0/dp/4774145246%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4774145246" rel="nofollow"><img src="http://ecx.images-amazon.com/images/I/512MgvG5kVL._SL160_.jpg" /></a></p></div>
                    <div class="right">
                        <h3><a href="http://www.amazon.co.jp/Web%E3%82%B5%E3%82%A4%E3%83%88%E5%88%B6%E4%BD%9C%E8%80%85%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AE-JavaScript%E5%85%A5%E9%96%80%E8%AC%9B%E5%BA%A7-%E6%9D%89%E6%9C%AC-%E5%90%89%E7%AB%A0/dp/4774145246%3FSubscriptionId%3D1QZ53N039N5YDZSY92R2%26tag%3Dmusicazemicom-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D4774145246" rel="nofollow">Webサイト制作者のための JavaScript入門講座</a></h3>
                        <p>作者:安藤 建一 | 価格:￥ 3,024</p>
                    </div>
                    </div>
                </div>
                ]]>
    </content>
</entry>

</feed>

