<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>鉄王 &#187; web</title>
	<atom:link href="http://www.tecking.org/archives/category/web/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tecking.org</link>
	<description>身のまわりの雑事いろいろ。たまに毒吐き。</description>
	<lastBuildDate>Thu, 22 Dec 2011 05:15:21 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tecking.org/archives/category/web/feed" />
		<item>
		<title>任意団体名で口座を開設する（ゆうちょ銀行編）</title>
		<link>http://www.tecking.org/archives/2622</link>
		<comments>http://www.tecking.org/archives/2622#comments</comments>
		<pubDate>Thu, 22 Dec 2011 04:31:13 +0000</pubDate>
		<dc:creator>tecking</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordBench]]></category>
		<category><![CDATA[コミュニティ運営]]></category>
		<category><![CDATA[会計]]></category>

		<guid isPermaLink="false">http://www.tecking.org/?p=2622</guid>
		<description><![CDATA[2012年1月21日開催予定のWordBench福井のイベント『WordCrab Fukui 2012』。参加費の集金用に、WordBench福井名義のゆうちょ口座を開設したところ、なんだかやたらとFacebook上での反応が良かったので、その開設方法を解説したいと思います……ってどーでもいいシャレですみません 任意団体名義での口座開設というとハードルが高いようですが、ゆうちょ銀行についていうとそうでもないみたいです。WordBench福井の前に、別の団体の口座も同じような方法で開設しているので、ほぼこの手順で問題ないでしょう。 団体の規約を作る 代表者個人の印鑑と身分証明書を用意する 代表者と会計担当者が別の場合は、会計担当者の印鑑と身分証明書を用意する 1～3を持って郵便局に行く ほぼ唯一の作業といっていいのは1.の規約作成です。といっても難しいものをつくる必要はなく、私の場合はA4判2枚の規約を作ってOKでした。参考になれば……ということで、提出した規約をもとにOpenDocument形式のテンプレートをつくりましたので、ご利用いただければと思います（一応PDF形式のファイルもダウンロードできるようにしました）。 なお、規約については一発OKが出ず何度か修正を求められるケースもあるので、口座開設手続きは最寄りの郵便局でやったほうがよいでしょうね。]]></description>
			<content:encoded><![CDATA[<p><a title="こんな感じで団体名義の口座を作りました" href="http://www.tecking.org/wordpress/wp-content/uploads/2011/12/wordbench.jpg" rel="shadowbox[2622]"><img src="http://www.tecking.org/wordpress/wp-content/uploads/2011/12/wordbench-400x300.jpg" alt="" title="こんな感じで団体名義の口座を作りました" width="400" height="300" class="alignnone size-medium wp-image-2625" /></a></p>
<p>2012年1月21日開催予定のWordBench福井のイベント『<a href="http://fukui.wordbench.org/archives/168" target="_blank">WordCrab Fukui 2012</a>』。参加費の集金用に、WordBench福井名義のゆうちょ口座を開設したところ、なんだかやたらとFacebook上での反応が良かったので、その開設方法を解説したいと思います……ってどーでもいいシャレですみません <img src='http://www.tecking.org/wordpress/wp-includes/images/smilies/icon_neutral.gif' alt=':-|' class='wp-smiley' /> </p>
<p><span id="more-2622"></span>任意団体名義での口座開設というとハードルが高いようですが、ゆうちょ銀行についていうとそうでもないみたいです。WordBench福井の前に、別の団体の口座も同じような方法で開設しているので、ほぼこの手順で問題ないでしょう。</p>
<ol>
<li>団体の規約を作る</li>
<li>代表者個人の印鑑と身分証明書を用意する</li>
<li>代表者と会計担当者が別の場合は、会計担当者の印鑑と身分証明書を用意する</li>
<li>1～3を持って郵便局に行く</li>
</ol>
<p>ほぼ唯一の作業といっていいのは1.の規約作成です。といっても難しいものをつくる必要はなく、私の場合はA4判2枚の規約を作ってOKでした。参考になれば……ということで、提出した規約をもとにOpenDocument形式のテンプレートをつくりましたので、ご利用いただければと思います（一応PDF形式のファイルもダウンロードできるようにしました）。</p>
<p>なお、規約については一発OKが出ず何度か修正を求められるケースもあるので、口座開設手続きは最寄りの郵便局でやったほうがよいでしょうね。</p>
<p><a href="http://www.tecking.org/wordpress/wp-content/plugins/download-monitor/download.php?id=7">規約テンプレート（OpenDocument形式）</a><br />
<a href="http://www.tecking.org/wordpress/wp-content/plugins/download-monitor/download.php?id=8">規約テンプレート（PDF形式）</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecking.org/archives/2622/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tecking.org/archives/2622" />
	</item>
		<item>
		<title>functions.phpの変更が反映されないときの点検項目（APC編）</title>
		<link>http://www.tecking.org/archives/2532</link>
		<comments>http://www.tecking.org/archives/2532#comments</comments>
		<pubDate>Sun, 02 Oct 2011 14:54:51 +0000</pubDate>
		<dc:creator>tecking</dc:creator>
				<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[文系鯖缶日誌]]></category>
		<category><![CDATA[10.04]]></category>
		<category><![CDATA[APC]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plug-in]]></category>
		<category><![CDATA[子テーマ]]></category>

		<guid isPermaLink="false">http://www.tecking.org/?p=2532</guid>
		<description><![CDATA[グーグル先生もこれといった答えを教えてくださらず、試行錯誤で1時間以上にわたりハマったのでメモ。 このところのVPSの低料金化で、重ったらしい共用サーバからVPSに乗り換えてWordPressを稼働させている方も多いかと思います。かくいう私もVPS（『さくらのVPS512』）に乗り換えて、当サイト含め3つのサイトを稼働させています。 PHPアクセラレータによる高速化 さて、せっかくVPSでWordPressを稼働させるのであれば、さまざまなワザを使って高速化を図りたいもの。その一つとして人気が高い（というか定番）のが、PHPアクセラレータを導入するという手法です。私が導入しているPHPアクセラレータ『APC』のサイトにはこう書かれています。 Alternative PHP Cache (APC) は、PHP の実行コードをキャッシュする仕組みで、 フリーかつオープンに使用できます。PHP の中間コードのキャッシュ・最適化を行うための、 フリーでオープンかつ堅牢なフレームワークを提供するということを目標としています。 意訳すると、PHPスクリプト（WordPressでいうとコアファイルやテーマファイル、プラグインなど *.php という名のファイル群）を、サーバがより高速に処理できる状態（バイトコードという）に変換し、メモリ上に蓄えておく仕組み。以降、同じPHPスクリプトを実行するときには変換後のバイトコードを使いまわすため、高速化が図れるというわけです。 で、何が起きた？ このメリットが実は落とし穴でした。WordPressのテーマディレクトリにある functions.php をいくらいじってもサイトに反映されないのです。 WordPressの利点として「PHPスクリプトをトライアンドエラーで修正しながらサイトを構築できる」があると思います。某CMSのように「再構築」という面倒きわまりない手順を踏まなくても、PHPスクリプトをちょっと書いて実行して、また修正して……が簡単にできる。すばらしい。 ところが、PHPアクセラレータを使っていると、PHPスクリプトの修正がすぐには反映されません。コンパイルされたバイトコードがメモリ上に残っていると、PHPスクリプトを修正しようが中身がからっぽになろうが、ゾンビのようにバイトコードが実行されてしまうのです。 例えば、当方の環境（Ubuntu 10.04 i386）におけるAPCの設定ファイル /etc/php5/apache2/conf.d/apc.ini にはこんな記述があります。 apc.gc_ttl=3600 これは、PHPスクリプトが変更されても3600秒間は変更前の古いバージョンでコンパイルしたバイトコードを使い続けるという設定です。なので functions.php をいくらいじってもサイトに反映されなかったというわけ（1時間待てば反映されるんですけどね…… ） 前振りが長くなりましたが対処法 APCを導入していて、かつ、テーマのテンプレートファイルや functions.php を変更する必要が出てきたら、一時的にAPCを停止させるのがいいでしょう。 /etc/php5/apache2/conf.d/apc.ini をエディタで開き -apc.enabled=1 +apc.enabled=0 &#8230; <a href="http://www.tecking.org/archives/2532">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>グーグル先生もこれといった答えを教えてくださらず、試行錯誤で1時間以上にわたりハマったのでメモ。</p>
<p>このところのVPSの低料金化で、重ったらしい共用サーバからVPSに乗り換えてWordPressを稼働させている方も多いかと思います。かくいう私もVPS（『さくらのVPS512』）に乗り換えて、当サイト含め3つのサイトを稼働させています。<br />
<span id="more-2532"></span><br />
<h2>PHPアクセラレータによる高速化</h2>
<p>さて、せっかくVPSでWordPressを稼働させるのであれば、さまざまなワザを使って高速化を図りたいもの。その一つとして人気が高い（というか定番）のが、PHPアクセラレータを導入するという手法です。私が導入しているPHPアクセラレータ<a href="http://www.php.net/manual/ja/intro.apc.php" target="_blank">『APC』のサイト</a>にはこう書かれています。</p>
<blockquote><p>Alternative PHP Cache (APC) は、PHP の実行コードをキャッシュする仕組みで、 フリーかつオープンに使用できます。PHP の中間コードのキャッシュ・最適化を行うための、 フリーでオープンかつ堅牢なフレームワークを提供するということを目標としています。</p></blockquote>
<p>意訳すると、PHPスクリプト（WordPressでいうとコアファイルやテーマファイル、プラグインなど *.php という名のファイル群）を、サーバがより高速に処理できる状態（バイトコードという）に変換し、メモリ上に蓄えておく仕組み。以降、同じPHPスクリプトを実行するときには変換後のバイトコードを使いまわすため、高速化が図れるというわけです。</p>
<h2>で、何が起きた？</h2>
<p>このメリットが実は落とし穴でした。WordPressのテーマディレクトリにある functions.php をいくらいじってもサイトに反映されないのです。</p>
<p>WordPressの利点として「PHPスクリプトをトライアンドエラーで修正しながらサイトを構築できる」があると思います。某CMSのように「再構築」という面倒きわまりない手順を踏まなくても、PHPスクリプトをちょっと書いて実行して、また修正して……が簡単にできる。すばらしい。</p>
<p>ところが、PHPアクセラレータを使っていると、PHPスクリプトの修正がすぐには反映されません。コンパイルされたバイトコードがメモリ上に残っていると、PHPスクリプトを修正しようが中身がからっぽになろうが、ゾンビのようにバイトコードが実行されてしまうのです。</p>
<p>例えば、<a href="http://www.tecking.org/archives/1861">当方の環境（Ubuntu 10.04 i386）</a>におけるAPCの設定ファイル  /etc/php5/apache2/conf.d/apc.ini にはこんな記述があります。</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">apc<span style="color: #339933;">.</span>gc_ttl<span style="color: #339933;">=</span><span style="color: #cc66cc;">3600</span></pre></div></div>

<p>これは、PHPスクリプトが変更されても3600秒間は変更前の古いバージョンでコンパイルしたバイトコードを使い続けるという設定です。なので functions.php をいくらいじってもサイトに反映されなかったというわけ（1時間待てば反映されるんですけどね…… <img src='http://www.tecking.org/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  ）</p>
<h2>前振りが長くなりましたが対処法</h2>
<p>APCを導入していて、かつ、テーマのテンプレートファイルや functions.php を変更する必要が出てきたら、一時的にAPCを停止させるのがいいでしょう。</p>
<p>/etc/php5/apache2/conf.d/apc.ini をエディタで開き</p>

<div class="wp_syntax"><div class="code"><pre class="diff" style="font-family:monospace;"><span style="color: #991111;">-apc.enabled=1</span>
<span style="color: #00b000;">+apc.enabled=0</span></pre></div></div>

<p>と変更して、ウェブサーバ（当方の環境ではApache2）を再起動。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> service apache2 restart</pre></div></div>

<p>こうすることで、PHPスクリプトの変更が即座にサイトに反映されるという、WordPress本来のメリット（？）にあずかれるようになります。</p>
<p>修正が終わったら、再度 apc.ini の書き換えとウェブサーバの再起動をお忘れなく。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecking.org/archives/2532/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tecking.org/archives/2532" />
	</item>
		<item>
		<title>rsyncでWordPressの環境をディレクトリ構造そのままで移設する</title>
		<link>http://www.tecking.org/archives/2513</link>
		<comments>http://www.tecking.org/archives/2513#comments</comments>
		<pubDate>Sun, 07 Aug 2011 05:57:46 +0000</pubDate>
		<dc:creator>tecking</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[phpMyAdmin]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[VPS]]></category>
		<category><![CDATA[さくら]]></category>
		<category><![CDATA[バックアップ]]></category>
		<category><![CDATA[レンタルサーバ]]></category>

		<guid isPermaLink="false">http://www.tecking.org/?p=2513</guid>
		<description><![CDATA[「リモートサーバAからリモートサーバBにWordPressの環境を移したい」というとき、rsyncでラクして転送するための作業メモです。いちいちftpでローカルにダウンロードして再アップ、というのも面倒ですからね。個人的な覚え書きですがどなたかの参考になれば。 私がよくやる制作工程ということで、作業環境はこんな感じ。 サーバA …… さくらのVPS 512 サーバAのWordPressインストールディレクトリ…… /home/foo/bar サーバB …… さくらのレンタルサーバ スタンダード サーバBのアカウント …… hoge サーバBの初期ドメイン …… hoge.sakura.ne.jp WordPressを転送したいサーバBのディレクトリ …… /home/hoge/www/fuga サーバAにログインして以下のコマンドを実行。 rsync -e &#34;ssh -p 22&#34; -rz /home/foo/bar/ hoge@hoge.sakura.ne.jp:/home/hoge/www/fuga/ コマンドを実行すると「DSA key fingerprint is ～」という文字列の後に Are you sure you want &#8230; <a href="http://www.tecking.org/archives/2513">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>「リモートサーバAからリモートサーバBにWordPressの環境を移したい」というとき、rsyncでラクして転送するための作業メモです。いちいちftpでローカルにダウンロードして再アップ、というのも面倒ですからね。個人的な覚え書きですがどなたかの参考になれば。</p>
<p>私がよくやる制作工程ということで、作業環境はこんな感じ。</p>
<ul>
<li>サーバA …… さくらのVPS 512</li>
<li>サーバAのWordPressインストールディレクトリ…… /home/foo/bar</li>
<li>サーバB …… さくらのレンタルサーバ スタンダード</li>
<li>サーバBのアカウント …… hoge</li>
<li>サーバBの初期ドメイン …… hoge.sakura.ne.jp</li>
<li>WordPressを転送したいサーバBのディレクトリ …… /home/hoge/www/fuga</li>
</ul>
<p><span id="more-2513"></span>サーバAにログインして以下のコマンドを実行。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rsync <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;ssh -p 22&quot;</span> <span style="color: #660033;">-rz</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>foo<span style="color: #000000; font-weight: bold;">/</span>bar<span style="color: #000000; font-weight: bold;">/</span> hoge<span style="color: #000000; font-weight: bold;">@</span>hoge.sakura.ne.jp:<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>hoge<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>fuga<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>コマンドを実行すると「DSA key fingerprint is ～」という文字列の後に</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Are you sure you want to <span style="color: #7a0874; font-weight: bold;">continue</span> connecting <span style="color: #7a0874; font-weight: bold;">&#40;</span>yes<span style="color: #000000; font-weight: bold;">/</span>no<span style="color: #7a0874; font-weight: bold;">&#41;</span>?</pre></div></div>

<p>と出てくるので yes [enter] で続行。アカウント hoge のパスワードを入力後、しばらくしてプロンプトが返ってきたら転送完了です。サーバBにSSHでログインして無事転送されたか確認しましょう。</p>
<p>ちなみに rsync の -a オプションを使わないのは、転送するファイルの所有者やパーミッション、タイムスタンプなどを<strong>サーバBに反映させない</strong>ようにするためです。</p>
<p>なお、ここで紹介した作業ではデータベースの内容は移設できません。phpMyAdminを使った移設方法を<a title="テスト環境から本番環境へのWordPress移設をphpMyAdminでできるだけラクにやってみる" href="http://www.tecking.org/archives/2266">別エントリー</a>でまとめてありますので、そちらもあわせてどうぞ。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecking.org/archives/2513/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tecking.org/archives/2513" />
	</item>
		<item>
		<title>『Breadcrumb NavXT』使用時におけるカスタム投稿タイプの表示不具合を改善</title>
		<link>http://www.tecking.org/archives/2492</link>
		<comments>http://www.tecking.org/archives/2492#comments</comments>
		<pubDate>Mon, 20 Jun 2011 14:20:23 +0000</pubDate>
		<dc:creator>tecking</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[3.1]]></category>
		<category><![CDATA[プラグイン]]></category>

		<guid isPermaLink="false">http://www.tecking.org/?p=2492</guid>
		<description><![CDATA[WordPressで構築したサイトに簡単にパンくずリスト（トピックパス）を実装できるプラグイン『Breadcrumb NavXT』。バージョンも3.9.0まで上がり（2011.6.20現在）、今や〈定番〉といってもいいポジションにいるのではないかと思います。 そんな『Breadcrumb NavXT』﻿﻿、今まで作ったいろんなサイトに組み込んでいるものの、どうもカスタム投稿タイプとの相性がよろしくない様子（プラグインのそのものはカスタム投稿タイプに対応している、ということになっているのですけれども）。 『Custom Post Type UI』プラグインを使った私の設定に原因があるのかもしれませんが、あるサイトでこんなパンくずリストが出力されました。 何が起きた？ ホーム &#62; [カスタム投稿タイプのラベル] &#62; [カテゴリー名] &#62; 記事タイトル HTMLを見てみるとこんな感じです。 &#60;ul&#62; &#60;li&#62;&#60;a title=&#34;ホーム&#34; href=&#34;http://www.example.com&#34;&#62;ホーム&#60;/li&#62;&#60;li&#62;&#60;a title=&#34;[カスタム投稿タイプのラベル]&#34; href=&#34;&#34;&#62;[カスタム投稿タイプのラベル]&#60;/a&#62;&#60;/li&#62;&#60;li&#62;&#60;a title=&#34;[カテゴリー名]&#34; href=&#34;http://www.example.com/path/to/category&#34;&#62;[カテゴリー名]&#60;/a&#62;&#60;/li&#62;&#60;li&#62;記事タイトル&#60;/li&#62; &#60;/ul&#62; だらだらと書いてしまいましたが、結局 &#60;li&#62;&#60;a title=&#34;[カスタム投稿タイプのラベル]&#34; href=&#34;&#34;&#62;[カスタム投稿タイプのラベル]&#60;/a&#62;&#60;/li&#62; が余計に出力されてしまっているのです。 bcn_display() に引数を与えて解決 公式サイトにもあるようにこのプラグインは、テンプレートの任意の箇所に &#60;?php if &#40; function_exists&#40; 'bcn_display' &#41; &#8230; <a href="http://www.tecking.org/archives/2492">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>WordPressで構築したサイトに簡単にパンくずリスト（トピックパス）を実装できるプラグイン『<a href="http://wordpress.org/extend/plugins/breadcrumb-navxt/">Breadcrumb NavXT</a>』。バージョンも3.9.0まで上がり（2011.6.20現在）、今や〈定番〉といってもいいポジションにいるのではないかと思います。</p>
<p>そんな『Breadcrumb NavXT』﻿﻿、今まで作ったいろんなサイトに組み込んでいるものの、どうもカスタム投稿タイプとの相性がよろしくない様子（プラグインのそのものはカスタム投稿タイプに対応している、ということになっているのですけれども）。</p>
<p>『Custom Post Type UI』プラグインを使った私の設定に原因があるのかもしれませんが、あるサイトでこんなパンくずリストが出力されました。<br />
<span id="more-2492"></span><br />
<h2>何が起きた？</h2>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">ホーム &gt; [カスタム投稿タイプのラベル] &gt; [カテゴリー名] &gt; 記事タイトル</pre></div></div>

<p>HTMLを見てみるとこんな感じです。</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;ul&gt;
&lt;li&gt;&lt;a title=&quot;ホーム&quot; href=&quot;http://www.example.com&quot;&gt;ホーム&lt;/li&gt;&lt;li&gt;&lt;a title=&quot;[カスタム投稿タイプのラベル]&quot; href=&quot;&quot;&gt;[カスタム投稿タイプのラベル]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title=&quot;[カテゴリー名]&quot; href=&quot;http://www.example.com/path/to/category&quot;&gt;[カテゴリー名]&lt;/a&gt;&lt;/li&gt;&lt;li&gt;記事タイトル&lt;/li&gt;
&lt;/ul&gt;</pre></div></div>

<p>だらだらと書いてしまいましたが、結局</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;li&gt;&lt;a title=&quot;[カスタム投稿タイプのラベル]&quot; href=&quot;&quot;&gt;[カスタム投稿タイプのラベル]&lt;/a&gt;&lt;/li&gt;</pre></div></div>

<p>が余計に出力されてしまっているのです。</p>
<h2>bcn_display() に引数を与えて解決</h2>
<p>公式サイトにもあるようにこのプラグインは、テンプレートの任意の箇所に</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'bcn_display'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	bcn_display<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>と記述することによりパンくずリストを表示するようになっています。ところが、このままでは上記の〈余計なリンク〉が出力されてしまいます。</p>
<p>実は bcn_display() という関数（WordPress的にいうとテンプレートタグ）には、</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">bcn_display<span style="color: #009900;">&#40;</span> <span style="color: #009900; font-weight: bold;">true</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>と書くことにより、PHPで処理できる形として値を返すオプションがあります。つまり、たとえば</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$str</span> <span style="color: #339933;">=</span> bcn_display<span style="color: #009900;">&#40;</span> <span style="color: #009900; font-weight: bold;">true</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>と書けば変数 $str にパンくずリストの文字列をいったん格納し preg_replace() などで不必要な箇所をカットして表示させることができるのです。</p>
<p>このオプションを活用して、上記の〈余計なリンク〉問題は</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'bcn_display'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$str</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;/&lt;li&gt;&lt;a title=<span style="color: #000099; font-weight: bold;">\&quot;</span>[カスタム投稿タイプのラベル].+?li&gt;/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span> bcn_display<span style="color: #009900;">&#40;</span> <span style="color: #009900; font-weight: bold;">true</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;ul&gt;'</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$str</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'&lt;/ul&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>と回避。我ながら変則的なやりかたと思いながらも表示の不具合を解消できたのでした。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecking.org/archives/2492/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tecking.org/archives/2492" />
	</item>
		<item>
		<title>BuddyPressのメニュータブをカスタマイズ（フィルターフックで）</title>
		<link>http://www.tecking.org/archives/2462</link>
		<comments>http://www.tecking.org/archives/2462#comments</comments>
		<pubDate>Thu, 26 May 2011 22:15:54 +0000</pubDate>
		<dc:creator>tecking</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[BuddyPress]]></category>

		<guid isPermaLink="false">http://www.tecking.org/?p=2462</guid>
		<description><![CDATA[先日手がけたBuddyPressの案件にて、依頼主より「プロフィール設定のメニュータブについて、一部を非表示にしてほしい」とのオーダーがありました。 この画像でいうところの「活動」とか「プロフィール」といった項目ですね。 で、ソースを読んでいったところ、フィルターフックでメニュー項目の非表示ができることが分かりましたのでここに紹介する次第です。いつもどおりの「ご利用は計画的に」な技術情報ですのでご留意ください。 今回のオーダーは 「グループ」を非表示にしてほしい 「設定」→「通知」を非表示にしてほしい というもの。ぱっと思い浮かぶのは、「テンプレートファイルいじればオッケイなんじゃない？」との発想ですが、たとえば「グループ」の非表示に絡む wp-content/plugins/buddypress/bp-themes/bp-default/members/single/home.php というテンプレートファイルを見てみますと &#60;div id=&#34;item-nav&#34;&#62; &#60;div id=&#34;object-nav&#34; class=&#34;item-list-tabs no-ajax&#34;&#62; &#60;ul&#62; &#60;?php bp_get_displayed_user_nav&#40;&#41;; ?&#62; &#160; &#60;?php do_action&#40; 'bp_member_options_nav' &#41;; ?&#62; &#60;/ul&#62; &#60;/div&#62; &#60;/div&#62;&#60;!-- #item-nav --&#62; というループでメニューが生成されており、テーマファイルのカスタマイズではどうしようもない状態でした。 それじゃあ、ということで対処法を。 「グループ」を非表示に wp-content/plugins/buddypress/bp-core/bp-core-templatetags.php で定義されている bp_get_displayed_user_nav() 関数を見てみると、ありました apply_filters() 関数が。 echo &#8230; <a href="http://www.tecking.org/archives/2462">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>先日手がけたBuddyPressの案件にて、依頼主より「プロフィール設定のメニュータブについて、一部を非表示にしてほしい」とのオーダーがありました。</p>
<p><a rel="shadowbox[2462]" href="http://www.tecking.org/wordpress/wp-content/uploads/2011/05/2011-05-27-06h25_33.png"><img src="http://www.tecking.org/wordpress/wp-content/uploads/2011/05/2011-05-27-06h25_33-400x169.png" width="400" height="169" class="alignnone size-medium wp-image-2463" /></a></p>
<p>この画像でいうところの「活動」とか「プロフィール」といった項目ですね。</p>
<p>で、ソースを読んでいったところ、フィルターフックでメニュー項目の非表示ができることが分かりましたのでここに紹介する次第です。いつもどおりの「ご利用は計画的に」な技術情報ですのでご留意ください。</p>
<p><span id="more-2462"></span>今回のオーダーは</p>
<ul>
<li>「グループ」を非表示にしてほしい</li>
<li>「設定」→「通知」を非表示にしてほしい</li>
</ul>
<p>というもの。ぱっと思い浮かぶのは、「テンプレートファイルいじればオッケイなんじゃない？」との発想ですが、たとえば「グループ」の非表示に絡む wp-content/plugins/buddypress/bp-themes/bp-default/members/single/home.php というテンプレートファイルを見てみますと</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&lt;div id=&quot;item-nav&quot;&gt;
&lt;div id=&quot;object-nav&quot; class=&quot;item-list-tabs no-ajax&quot;&gt;
&lt;ul&gt;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> bp_get_displayed_user_nav<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">&lt;?php</span> do_action<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'bp_member_options_nav'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;!-- #item-nav --&gt;</pre></div></div>

<p>というループでメニューが生成されており、テーマファイルのカスタマイズではどうしようもない状態でした。</p>
<p>それじゃあ、ということで対処法を。</p>
<h3>「グループ」を非表示に</h3>
<p>wp-content/plugins/buddypress/bp-core/bp-core-templatetags.php で定義されている bp_get_displayed_user_nav() 関数を見てみると、ありました apply_filters() 関数が。</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">echo</span> apply_filters<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'bp_get_displayed_user_nav_'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$user_nav_item</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'css_id'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'&lt;li id=&quot;'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$user_nav_item</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'css_id'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'-personal-li&quot; '</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$selected</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&gt;&lt;a id=&quot;user-'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$user_nav_item</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'css_id'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&quot; href=&quot;'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$link</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&quot;&gt;'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$user_nav_item</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'name'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&lt;/a&gt;&lt;/li&gt;'</span><span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span><span style="color: #000088;">$user_nav_item</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<ol>
<li>メニュー項目を作るたびに apply_filters() 関数を実行</li>
<li>&lt;li&gt; タグに
<pre>$user_nav_item['css_id']</pre>
<p> をIDとして与える</li>
</ol>
<p>ということをやっているので、</p>
<ol>
<li>非表示にしたいメニュー項目（&lt;li&gt;タグ）のIDを調べる</li>
<li>調べたIDについて以下のような関数を functions.php に書く</li>
</ol>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> remove_displayed_user_nav<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$content</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'bp_get_displayed_user_nav'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$content</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
add_filter<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'bp_get_displayed_user_nav_groups'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'remove_displayed_user_nav'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>functions.php に書く前</p>
<p><a rel="shadowbox[2462]" title="" href="http://www.tecking.org/wordpress/wp-content/uploads/2011/05/2011-05-27-06h13_43.png"><img src="http://www.tecking.org/wordpress/wp-content/uploads/2011/05/2011-05-27-06h13_43-400x17.png" alt="" title="" width="400" height="17" class="alignnone size-medium wp-image-2464" /></a></p>
<p>functions.php に書いた後</p>
<p><a rel="shadowbox[2462]" title="" href="http://www.tecking.org/wordpress/wp-content/uploads/2011/05/2011-05-27-06h14_21.png"><img src="http://www.tecking.org/wordpress/wp-content/uploads/2011/05/2011-05-27-06h14_21-400x17.png" alt="" title="" width="400" height="17" class="alignnone size-medium wp-image-2465" /></a></p>
<p>同様にして……</p>
<h3>「設定」→「通知」を非表示に</h3>
<p>サブメニューの方は wp-content/plugins/buddypress/bp-core/bp-core-templatetags.php の bp_get_options_nav() 関数で実装されているようなので</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> remove_bp_get_options_nav<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$content</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'bp_get_options_nav'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$content</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
add_filter<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'bp_get_options_nav_notifications'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'remove_bp_get_options_nav'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>このような感じで。</p>
<p>add_fliter() 関数の引数である bp_get_displayed_user_nav_hoge や bp_get_options_nav_hoge の文字列 hoge が&lt;li&gt;タグのIDに相当するので、削除したいメニュー項目のIDを調べて functions.php に add_filter でどんどこ追記していけばオッケイでしょう。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecking.org/archives/2462/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tecking.org/archives/2462" />
	</item>
		<item>
		<title>『Google ドキュメント』のスプレッドシート−COUNTIF関数でワイルドカードが使えるようになっていた！</title>
		<link>http://www.tecking.org/archives/2419</link>
		<comments>http://www.tecking.org/archives/2419#comments</comments>
		<pubDate>Tue, 10 May 2011 21:16:23 +0000</pubDate>
		<dc:creator>tecking</dc:creator>
				<category><![CDATA[PC]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[Google ドキュメント]]></category>

		<guid isPermaLink="false">http://www.tecking.org/?p=2419</guid>
		<description><![CDATA[ずいぶん前のエントリー「『Google ドキュメント』のスプレッドシート−COUNTIF関数ではワイルドカードが使えません。正規表現も (T_T)」で言及していたGoogle ドキュメントの仕様について。まだボチボチとアクセスがあるようなので、再検証を……と思って試してみました。 なんと！　いつの間にかワイルドカードが使えるようになっているではありませんか！ えー……Google ドキュメントのヘルプもいつの間にか更新されてました COUNTIF : 関数 &#8211; Google ドキュメント ヘルプ http://docs.google.com/support/bin/answer.py?hl=ja&#38;answer=155230 特定の条件に一致するセル範囲内の要素の数を返します。[範囲] は、条件を適用する範囲です。[条件] は、セルを数えるのに使用する数値形式または文字列形式の条件です。[条件] には、不特定の 1 文字に一致する疑問符（?）や、不特定の文字列に一致するアスタリスク（*）を使用できます。実際の疑問符やアスタリスクを検索するには、疑問符（?）またはアスタリスク（*）の前にチルダ（~）を付けます。 自分でメモった技術情報もときどきこうやって検証しないといかんですね。]]></description>
			<content:encoded><![CDATA[<p>ずいぶん前のエントリー「<a title="『Google ドキュメント』のスプレッドシート−COUNTIF関数ではワイルドカードが使えません。正規表現も (T_T)" href="http://www.tecking.org/archives/97">『Google ドキュメント』のスプレッドシート−COUNTIF関数ではワイルドカードが使えません。正規表現も (T_T)</a>」で言及していたGoogle ドキュメントの仕様について。まだボチボチとアクセスがあるようなので、再検証を……と思って試してみました。</p>
<p>なんと！　いつの間にかワイルドカードが使えるようになっているではありませんか！</p>
<p><span id="more-2419"></span><a title="出現回数はきちんと集計されているようです……" rel="shadowbox[2419]" href="http://www.tecking.org/wordpress/wp-content/uploads/2011/05/2011-05-11-06h05_04.png"><img src="http://www.tecking.org/wordpress/wp-content/uploads/2011/05/2011-05-11-06h05_04-400x258.png" title="出現回数はきちんと集計されているようです……" width="400" height="258" class="alignnone size-medium wp-image-2420" /></a></p>
<p><a title="ワイルドカードが使えるようになってました！" rel="shadowbox[2419]" href="http://www.tecking.org/wordpress/wp-content/uploads/2011/05/2011-05-11-06h04_52.png"><img src="http://www.tecking.org/wordpress/wp-content/uploads/2011/05/2011-05-11-06h04_52-400x258.png" title="ワイルドカードが使えるようになってました！" width="400" height="258" class="alignnone size-medium wp-image-2422" /></a></p>
<p>えー……Google ドキュメントのヘルプもいつの間にか更新されてました  <img src='http://www.tecking.org/wordpress/wp-includes/images/smilies/icon_eek.gif' alt='8-O' class='wp-smiley' /> </p>
<p><em>COUNTIF : 関数 &#8211; Google ドキュメント ヘルプ</em><br />
<a rel="external" href="http://docs.google.com/support/bin/answer.py?hl=ja&amp;answer=155230">http://docs.google.com/support/bin/answer.py?hl=ja&amp;answer=155230</a></p>
<blockquote><p>特定の条件に一致するセル範囲内の要素の数を返します。[範囲] は、条件を適用する範囲です。[条件] は、セルを数えるのに使用する数値形式または文字列形式の条件です。[条件] には、不特定の 1 文字に一致する疑問符（?）や、不特定の文字列に一致するアスタリスク（*）を使用できます。実際の疑問符やアスタリスクを検索するには、疑問符（?）またはアスタリスク（*）の前にチルダ（~）を付けます。</p></blockquote>
<p>自分でメモった技術情報もときどきこうやって検証しないといかんですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecking.org/archives/2419/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tecking.org/archives/2419" />
	</item>
		<item>
		<title>任意の画像を『WP-OGP』のサムネイルに使う</title>
		<link>http://www.tecking.org/archives/2396</link>
		<comments>http://www.tecking.org/archives/2396#comments</comments>
		<pubDate>Sat, 30 Apr 2011 14:53:50 +0000</pubDate>
		<dc:creator>tecking</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[OGP]]></category>
		<category><![CDATA[plug-in]]></category>

		<guid isPermaLink="false">http://www.tecking.org/?p=2396</guid>
		<description><![CDATA[今朝参加した勉強会でその存在をきちんと知ることになったOGP（Open Graph Protocol）。遅ればせながら当サイトにも実装してみるか、とググってみたところ『WP-OGP』というその名もズバリなプラグインがヒットしました。嗚呼素晴らしきかなプラグインの世界。 ですがこのプラグイン、例えばFacebook上でシェアしたとき、デフォルトだと こんな画像が表示されてしまいます。せっかくプラグインを組み込むのなら、オリジナルの画像を使いたいのが人情というものでしょう……ということで二つの方法を紹介。 デフォルト画像を上書き How do I replace the default image? Go to &#8220;wordpress directory&#8221;/wp-content/plugins/wp-ogp and replace default.jpg with another image with the same name! This only works for the default image, you need to add a featured &#8230; <a href="http://www.tecking.org/archives/2396">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>今朝参加した勉強会でその存在をきちんと知ることになったOGP（Open Graph Protocol）。遅ればせながら当サイトにも実装してみるか、とググってみたところ『<a href="http://wordpress.org/extend/plugins/wp-ogp/" target="_blank">WP-OGP</a>』というその名もズバリなプラグインがヒットしました。嗚呼素晴らしきかなプラグインの世界。</p>
<p>ですがこのプラグイン、例えばFacebook上でシェアしたとき、デフォルトだと</p>
<p><a rel="shadowbox[2396]" href="http://www.tecking.org/wordpress/wp-content/uploads/2011/04/default.jpg"><img src="http://www.tecking.org/wordpress/wp-content/uploads/2011/04/default.jpg" width="152" height="152" class="alignnone size-full wp-image-2397" /></a></p>
<p>こんな画像が表示されてしまいます。せっかくプラグインを組み込むのなら、オリジナルの画像を使いたいのが人情というものでしょう……ということで二つの方法を紹介。<br />
<span id="more-2396"></span><br />
<h2>デフォルト画像を上書き</h2>
<blockquote><p>How do I replace the default image?<br />
Go to &#8220;wordpress directory&#8221;/wp-content/plugins/wp-ogp and replace default.jpg with another image with the same name! This only works for the default image, you need to add a featured image on the post page for it to work with articles.</p></blockquote>
<p>……と『WP-OGP』のFAQにも載っている方法。任意の画像に default.jpg というファイル名をつけ wp-content/plugins/wp-ogp 内にアップロードするだけです。上書きするのでもともとの default.jpg が消えてしまったり、JPEG以外の画像だと使えなかったり、という欠点も。</p>
<h2>functions.phpに追記</h2>
<p>『WP-OGP』内の wpogp_add_head 関数をアクションフックで置き換える方法です。管理パネルの [外観] &#8211; [ヘッダー] で設定した画像だけでなく、サイト外の画像も表示可能という利点があります。例のごとく「ご利用は計画的に <img src='http://www.tecking.org/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> 」のコードですが、こんな感じで functions.php に追記します。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> my_wpogp_add_head<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'wpogp_add_head'</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000000; font-weight: bold;">global</span> <span style="color: #000088;">$post</span><span style="color: #339933;">;</span>
                <span style="color: #000088;">$image</span> <span style="color: #339933;">=</span> get_the_post_thumbnail_src<span style="color: #009900;">&#40;</span> get_the_post_thumbnail<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$post</span> <span style="color: #339933;">-&gt;</span> <span style="color: #004000;">ID</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000088;">$data</span> <span style="color: #339933;">=</span> wpogp_set_data<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span> <span style="color: #000088;">$image</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                        <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'og:image'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'image_src'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> get_header_image<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
                <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
                        <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'og:image'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'image_src'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$image</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
&nbsp;
                <span style="color: #b1b100;">echo</span> get_wpogp_headers<span style="color: #009900;">&#40;</span> <span style="color: #000088;">$data</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
remove_action<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'wp_head'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'wpogp_add_head'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
add_action<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'wp_head'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'my_wpogp_add_head'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>上記の例では</p>
<ul>
<li>アイキャッチ画像がないとき……サムネイルはヘッダー画像</li>
<li>アイキャッチ画像があるとき……サムネイルはアイキャッチ画像</li>
</ul>
<p>となります。ヘッダー画像以外のものをサムネイルにしたいときは、9行目の get_header_image(); を &#8216;http://www.example.com/hoge.jpg&#8217;; のように書き換えればオッケイです。</p>
<p>［2011.5.1追記］<br />
初出時のコードにて『WP-OGP』プラグインOFF時の挙動に不具合がありました。コードを修正しましたので、初出時のものをお使いになった方がいらっしゃいましたら、再設定をおねがいいたします。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecking.org/archives/2396/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tecking.org/archives/2396" />
	</item>
		<item>
		<title>BuddyPressで子テーマを作る方法</title>
		<link>http://www.tecking.org/archives/2318</link>
		<comments>http://www.tecking.org/archives/2318#comments</comments>
		<pubDate>Sun, 24 Apr 2011 06:41:48 +0000</pubDate>
		<dc:creator>tecking</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[BuddyPress]]></category>
		<category><![CDATA[子テーマ]]></category>

		<guid isPermaLink="false">http://www.tecking.org/?p=2318</guid>
		<description><![CDATA[日本語でググったところ、意外にもその方法に言及しているサイトが見つからなかったので紹介します。BuddyPressの公式サイトにある『Theme Dev: Building a BuddyPress Child Theme』からの引用＋拙訳です。 子テーマを作るディレクトリは『子テーマ &#8211; WordPress Codex 日本語版』にあるとおり wp-content/themes 内でOK。でも、Codexどおりの書式ではBuddyPressのデフォルトテーマ（BuddyPress Default）を継承してくれないので、以下のように style.css を定義します（必須の項目だけ記しました）。 1 2 3 4 5 6 7 8 @charset &#34;utf-8&#34;; /* Theme Name: hoge Template: bp-default */ &#160; @import url( ../../plugins/buddypress/bp-themes/bp-default/_inc/css/default.css ); @import &#8230; <a href="http://www.tecking.org/archives/2318">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>日本語でググったところ、意外にもその方法に言及しているサイトが見つからなかったので紹介します。BuddyPressの公式サイトにある『<a href="http://codex.buddypress.org/theme-development/building-a-buddypress-child-theme/" target="_blank">Theme Dev: Building a BuddyPress Child Theme</a>』からの引用＋拙訳です。</p>
<p><a rel="shadowbox[2318]" title="" href="http://www.tecking.org/wordpress/wp-content/uploads/2011/04/BuddyPress1.png"><img src="http://www.tecking.org/wordpress/wp-content/uploads/2011/04/BuddyPress1-400x231.png" alt="" title="" width="400" height="231" class="alignnone size-medium wp-image-2320" /></a></p>
<p><span id="more-2318"></span>子テーマを作るディレクトリは『<a href="http://wpdocs.sourceforge.jp/Child_Themes" target="_blank">子テーマ &#8211; WordPress Codex 日本語版</a>』にあるとおり wp-content/themes 内でOK。でも、Codexどおりの書式ではBuddyPressのデフォルトテーマ（BuddyPress Default）を継承してくれないので、以下のように style.css を定義します（必須の項目だけ記しました）。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #a1a100;">@charset &quot;utf-8&quot;;</span>
<span style="color: #808080; font-style: italic;">/*
Theme Name: hoge
Template: bp-default
*/</span>
&nbsp;
<span style="color: #a1a100;">@import url( ../../plugins/buddypress/bp-themes/bp-default/_inc/css/default.css );</span>
<span style="color: #a1a100;">@import url( ../../plugins/buddypress/bp-themes/bp-default/_inc/css/adminbar.css );</span></pre></td></tr></table></div>

<p>BuddyPressデフォルトのテーマファイルは wp-content/themes 内ではなく wp-content/plugins/buddypress/bp-themes/bp-default 内にあるので @import のパス（7～8行目）が通常の子テーマとは異なっている、というわけです。</p>
<p>テンプレートをオーバーライド（上書き）したいときは、子テーマディレクトリ内に wp-content/plugins/buddypress/bp-themes/bp-default と同じ構造でテンプレートファイル（*.php）を配置していきます。</p>
<p>たとえばフォーラムのテンプレートをカスタマイズするなら wp-content/themes/hoge/forums というディレクトリを作り、その中に index.php や forums-loop.php を作ればいいということになります。</p>
<p>ではではハッピーなBuddyPressライフを！　BuddyPressの日本語ドキュメントはまだまだ発展途上だと思うので、BuddyPressと格闘するみなさんといろいろ情報共有したいですね。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecking.org/archives/2318/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tecking.org/archives/2318" />
	</item>
		<item>
		<title>RubyとRakeを使って カスタムShadowbox.jsを作る</title>
		<link>http://www.tecking.org/archives/2307</link>
		<comments>http://www.tecking.org/archives/2307#comments</comments>
		<pubDate>Thu, 14 Apr 2011 06:15:25 +0000</pubDate>
		<dc:creator>tecking</dc:creator>
				<category><![CDATA[PC]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.tecking.org/?p=2307</guid>
		<description><![CDATA[前回の記事「Shadowbox.jsのキャプション位置を画像の下に変えてみる」の追記です。あの作例では、ソースの skin.js にてキャプション位置を入れ替え、可読性のよろしくない shadowbox.js を開いてズボ替えする方法を採りました。 これでも結果オーライだからまあいいのですけれど、別解として skin.js を修正した後、自分でカスタム shadowbox.js を作る方法も紹介します。 なお、カスタム shadowbox.js を作るには Ruby Rake（Rubyによるビルドツール） が必要なのでご了承のほど。ここでは、Ubuntuを使ってのビルド（作成）方法について紹介していきます。 まずは ruby と rake を apt か aptitude でインストール。 sudo apt-get install ruby rake GitHubからダウンロードした Shadowbox.js のソースディレクトリに移動し設定ファイル build.yml を開きます。 --- &#160; # May be &#8230; <a href="http://www.tecking.org/archives/2307">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>前回の記事「<a href="http://www.tecking.org/archives/2293">Shadowbox.jsのキャプション位置を画像の下に変えてみる</a>」の追記です。あの作例では、ソースの skin.js にてキャプション位置を入れ替え、可読性のよろしくない shadowbox.js を開いてズボ替えする方法を採りました。</p>
<p><a rel="shadowbox[2307]" title="" href="http://www.tecking.org/wordpress/wp-content/uploads/2011/04/ruby.png"><img src="http://www.tecking.org/wordpress/wp-content/uploads/2011/04/ruby-400x231.png" alt="" title="" width="400" height="231" class="alignnone size-medium wp-image-2309" /></a></p>
<p>これでも結果オーライだからまあいいのですけれど、別解として skin.js を修正した後、自分でカスタム shadowbox.js を作る方法も紹介します。</p>
<p><span id="more-2307"></span>なお、カスタム shadowbox.js を作るには</p>
<ul>
<li>Ruby</li>
<li>Rake（Rubyによるビルドツール）</li>
</ul>
<p>が必要なのでご了承のほど。ここでは、Ubuntuを使ってのビルド（作成）方法について紹介していきます。</p>
<p><!--more-->まずは ruby と rake を apt か aptitude でインストール。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> ruby rake</pre></div></div>

<p><a href="https://github.com/mjijackson/shadowbox" target="_blank">GitHubからダウンロードした Shadowbox.js</a> のソースディレクトリに移動し設定ファイル build.yml を開きます。</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">---
&nbsp;
# May be the name of any adapter in source/adapters
adapter: base
&nbsp;
# May be any language code in source/languages
language: en
&nbsp;
# An array of names of players found in source/players
players: [flv, html, iframe, img, qt, swf, wmp]
&nbsp;
# YES to include support for CSS selectors, NO to decline
css_support: YES
&nbsp;
# YES to compress the code, NO to use the source code
compress: NO
&nbsp;
# The directory to output the build to
target: build</pre></div></div>

<p>日本語環境で使うなら</p>

<div class="wp_syntax"><div class="code"><pre class="diff" style="font-family:monospace;"><span style="color: #991111;">-language: en</span>
<span style="color: #00b000;">+language: ja</span></pre></div></div>

<p>あとはお好みで、ライブラリとしてjQueryを使いたいなら</p>

<div class="wp_syntax"><div class="code"><pre class="diff" style="font-family:monospace;"><span style="color: #991111;">-adapter: base</span>
<span style="color: #00b000;">+adapter: jquery</span></pre></div></div>

<p>可読性よりもファイルサイズ・実行速度重視なら</p>

<div class="wp_syntax"><div class="code"><pre class="diff" style="font-family:monospace;"><span style="color: #991111;">-compress: NO</span>
<span style="color: #00b000;">+compress: YES</span></pre></div></div>

<p>と変更すればよいでしょう。</p>
<p>それではおもむろに Rake でビルド。build.yml のあるディレクトリでコマンドを実行します。同じディレクトリにある Rakefile が自動的に build.yml の設定内容を読みにいってくれるので、rakeコマンドは引数なしでオッケイです。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rake</pre></div></div>

<p>すると、同じ階層に build というディレクトリが新たにできます。build ディレクトリの中身は例えばこんな感じですね。</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">LICENSE
README
close.png
expressInstall.swf
loading.gif
next.png
pause.png
play.png
player.swf
previous.png
shadowbox.css
shadowbox.js</pre></div></div>

<p>これでビルドは完了。ディレクトリ名を Shadowbox などに適宜変えて、いつもどおりウェブサーバ上にディレクトリごとアップロードしてください。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecking.org/archives/2307/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tecking.org/archives/2307" />
	</item>
		<item>
		<title>Shadowbox.jsのキャプション位置を画像の下に変えてみる</title>
		<link>http://www.tecking.org/archives/2293</link>
		<comments>http://www.tecking.org/archives/2293#comments</comments>
		<pubDate>Wed, 13 Apr 2011 12:26:10 +0000</pubDate>
		<dc:creator>tecking</dc:creator>
				<category><![CDATA[web]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.tecking.org/?p=2293</guid>
		<description><![CDATA[必要に迫られてググってみたものの、意外にも日本語のドキュメントが見つからなかったので試行錯誤の結果も兼ねてまとめてみます。 要は shadowbox.js の中身をちょっと書き換えればよいのですが、改行やスペースを徹底的に削除して軽量化が図られてるのでヒジョーに読みづらい。そこで、まずはGitHubからShadowboxのソースをダウンロードしてきます。 mjijackson/shadowbox &#8211; GitHub https://github.com/mjijackson/shadowbox 展開して source フォルダ内の skin.js を開きます。今日現在の最新版であれば、413行から始まるHTMLタグの文字列を見てみます。 '&#60;div id=&#34;sb-container&#34;&#62;' + '&#60;div id=&#34;sb-overlay&#34;&#62;&#60;/div&#62;' + '&#60;div id=&#34;sb-wrapper&#34;&#62;' + '&#60;div id=&#34;sb-title&#34;&#62;' + '&#60;div id=&#34;sb-title-inner&#34;&#62;&#60;/div&#62;' + '&#60;/div&#62;' + '&#60;div id=&#34;sb-wrapper-inner&#34;&#62;' + '&#60;div id=&#34;sb-body&#34;&#62;' + '&#60;div id=&#34;sb-body-inner&#34;&#62;&#60;/div&#62;' + '&#60;div &#8230; <a href="http://www.tecking.org/archives/2293">続きを読む <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>必要に迫られてググってみたものの、意外にも日本語のドキュメントが見つからなかったので試行錯誤の結果も兼ねてまとめてみます。</p>
<p><a rel="shadowbox[2293]" href="http://www.tecking.org/wordpress/wp-content/uploads/2011/04/2011-04-13-20h43_57.png"><img src="http://www.tecking.org/wordpress/wp-content/uploads/2011/04/2011-04-13-20h43_57-400x230.png" width="400" height="230" class="alignnone size-medium wp-image-2294" /></a></p>
<p><span id="more-2293"></span>要は shadowbox.js の中身をちょっと書き換えればよいのですが、改行やスペースを徹底的に削除して軽量化が図られてるのでヒジョーに読みづらい。そこで、まずはGitHubからShadowboxのソースをダウンロードしてきます。</p>
<p><a title="ページ右側にある「ダウンロード」から最新版のソースをダウンロード" rel="shadowbox[2293]" href="http://www.tecking.org/wordpress/wp-content/uploads/2011/04/2011-04-13-20h44_22.png"><img src="http://www.tecking.org/wordpress/wp-content/uploads/2011/04/2011-04-13-20h44_22-400x230.png" title="ページ右側にある「ダウンロード」から最新版のソースをダウンロード" width="400" height="230" class="alignnone size-medium wp-image-2295" /></a></p>
<p><em>mjijackson/shadowbox &#8211; GitHub</em><br />
<a href="https://github.com/mjijackson/shadowbox" target="_blank">https://github.com/mjijackson/shadowbox</a></p>
<p>展開して source フォルダ内の skin.js を開きます。今日現在の最新版であれば、413行から始まるHTMLタグの文字列を見てみます。</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #3366CC;">'&lt;div id=&quot;sb-container&quot;&gt;'</span> <span style="color: #339933;">+</span>
    <span style="color: #3366CC;">'&lt;div id=&quot;sb-overlay&quot;&gt;&lt;/div&gt;'</span> <span style="color: #339933;">+</span>
    <span style="color: #3366CC;">'&lt;div id=&quot;sb-wrapper&quot;&gt;'</span> <span style="color: #339933;">+</span>
        <span style="color: #3366CC;">'&lt;div id=&quot;sb-title&quot;&gt;'</span> <span style="color: #339933;">+</span>
            <span style="color: #3366CC;">'&lt;div id=&quot;sb-title-inner&quot;&gt;&lt;/div&gt;'</span> <span style="color: #339933;">+</span>
        <span style="color: #3366CC;">'&lt;/div&gt;'</span> <span style="color: #339933;">+</span>
        <span style="color: #3366CC;">'&lt;div id=&quot;sb-wrapper-inner&quot;&gt;'</span> <span style="color: #339933;">+</span>
            <span style="color: #3366CC;">'&lt;div id=&quot;sb-body&quot;&gt;'</span> <span style="color: #339933;">+</span>
                <span style="color: #3366CC;">'&lt;div id=&quot;sb-body-inner&quot;&gt;&lt;/div&gt;'</span> <span style="color: #339933;">+</span>
                <span style="color: #3366CC;">'&lt;div id=&quot;sb-loading&quot;&gt;'</span> <span style="color: #339933;">+</span>
                    <span style="color: #3366CC;">'&lt;div id=&quot;sb-loading-inner&quot;&gt;&lt;span&gt;{loading}&lt;/span&gt;&lt;/div&gt;'</span> <span style="color: #339933;">+</span>
                <span style="color: #3366CC;">'&lt;/div&gt;'</span> <span style="color: #339933;">+</span>
            <span style="color: #3366CC;">'&lt;/div&gt;'</span> <span style="color: #339933;">+</span>
        <span style="color: #3366CC;">'&lt;/div&gt;'</span> <span style="color: #339933;">+</span>
        <span style="color: #3366CC;">'&lt;div id=&quot;sb-info&quot;&gt;'</span> <span style="color: #339933;">+</span>
            <span style="color: #3366CC;">'&lt;div id=&quot;sb-info-inner&quot;&gt;'</span> <span style="color: #339933;">+</span>
                <span style="color: #3366CC;">'&lt;div id=&quot;sb-counter&quot;&gt;&lt;/div&gt;'</span> <span style="color: #339933;">+</span>
                <span style="color: #3366CC;">'&lt;div id=&quot;sb-nav&quot;&gt;'</span> <span style="color: #339933;">+</span>
                    <span style="color: #3366CC;">'&lt;a id=&quot;sb-nav-close&quot; title=&quot;{close}&quot; onclick=&quot;Shadowbox.close()&quot;&gt;&lt;/a&gt;'</span> <span style="color: #339933;">+</span>
                    <span style="color: #3366CC;">'&lt;a id=&quot;sb-nav-next&quot; title=&quot;{next}&quot; onclick=&quot;Shadowbox.next()&quot;&gt;&lt;/a&gt;'</span> <span style="color: #339933;">+</span>
                    <span style="color: #3366CC;">'&lt;a id=&quot;sb-nav-play&quot; title=&quot;{play}&quot; onclick=&quot;Shadowbox.play()&quot;&gt;&lt;/a&gt;'</span> <span style="color: #339933;">+</span>
                    <span style="color: #3366CC;">'&lt;a id=&quot;sb-nav-pause&quot; title=&quot;{pause}&quot; onclick=&quot;Shadowbox.pause()&quot;&gt;&lt;/a&gt;'</span> <span style="color: #339933;">+</span>
                    <span style="color: #3366CC;">'&lt;a id=&quot;sb-nav-previous&quot; title=&quot;{previous}&quot; onclick=&quot;Shadowbox.previous()&quot;&gt;&lt;/a&gt;'</span> <span style="color: #339933;">+</span>
                <span style="color: #3366CC;">'&lt;/div&gt;'</span> <span style="color: #339933;">+</span>
            <span style="color: #3366CC;">'&lt;/div&gt;'</span> <span style="color: #339933;">+</span>
        <span style="color: #3366CC;">'&lt;/div&gt;'</span> <span style="color: #339933;">+</span>
    <span style="color: #3366CC;">'&lt;/div&gt;'</span> <span style="color: #339933;">+</span>
<span style="color: #3366CC;">'&lt;/div&gt;'</span><span style="color: #339933;">;</span></pre></div></div>

<p>上記のうち</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">        <span style="color: #3366CC;">'&lt;div id=&quot;sb-title&quot;&gt;'</span> <span style="color: #339933;">+</span>
            <span style="color: #3366CC;">'&lt;div id=&quot;sb-title-inner&quot;&gt;&lt;/div&gt;'</span> <span style="color: #339933;">+</span>
        <span style="color: #3366CC;">'&lt;/div&gt;'</span> <span style="color: #339933;">+</span></pre></div></div>

<p>の3行がタイトル（キャプション）あたる箇所なので、この3行をカットして</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">        <span style="color: #3366CC;">'&lt;div id=&quot;sb-info&quot;&gt;'</span> <span style="color: #339933;">+</span></pre></div></div>

<p>の前に挿入後、いったん保存。</p>
<p>次は本丸、shadowbox.jsの書き換え。エディタの検索機能で</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">T.<span style="color: #660066;">markup</span><span style="color: #339933;">=</span><span style="color: #3366CC;">'&lt;div id=&quot;sb-container&quot;&gt;</span></pre></div></div>

<p>という文字列を検索します。すると T.markup= の次から始まる</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #3366CC;">'&lt;div id=&quot;sb-container&quot;&gt;&lt;div id=&quot;sb-overlay&quot;&gt;&lt;/div&gt;&lt;div id=&quot;sb-wrapper&quot;&gt;&lt;div id=&quot;sb-title&quot;&gt;&lt;div id=&quot;sb-title-inner&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;sb-wrapper-inner&quot;&gt;&lt;div id=&quot;sb-body&quot;&gt;&lt;div id=&quot;sb-body-inner&quot;&gt;&lt;/div&gt;&lt;div id=&quot;sb-loading&quot;&gt;&lt;div id=&quot;sb-loading-inner&quot;&gt;&lt;span&gt;{loading}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id=&quot;sb-info&quot;&gt;&lt;div id=&quot;sb-info-inner&quot;&gt;&lt;div id=&quot;sb-counter&quot;&gt;&lt;/div&gt;&lt;div id=&quot;sb-nav&quot;&gt;&lt;a id=&quot;sb-nav-close&quot; title=&quot;{close}&quot; onclick=&quot;Shadowbox.close()&quot;&gt;&lt;/a&gt;&lt;a id=&quot;sb-nav-next&quot; title=&quot;{next}&quot; onclick=&quot;Shadowbox.next()&quot;&gt;&lt;/a&gt;&lt;a id=&quot;sb-nav-play&quot; title=&quot;{play}&quot; onclick=&quot;Shadowbox.play()&quot;&gt;&lt;/a&gt;&lt;a id=&quot;sb-nav-pause&quot; title=&quot;{pause}&quot; onclick=&quot;Shadowbox.pause()&quot;&gt;&lt;/a&gt;&lt;a id=&quot;sb-nav-previous&quot; title=&quot;{previous}&quot; onclick=&quot;Shadowbox.previous()&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;'</span><span style="color: #339933;">;</span></pre></div></div>

<p>が見つかるので、この塊をさきほど保存したskin.js（の一部）と差し替えればオッケイとなります。</p>
<p>お気づきかと思いますが、実はこんな回り道をしなくても、実はshadowbox.jsを直に書き換えればよかったりします <img src='http://www.tecking.org/wordpress/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> 　ただ、あまりに可読性がよろしくないので、きれいにインデントされたソースを改造した方が早道では？と考えて紹介した次第です。</p>
<p>……と書いてる私のサイト、Shadowboxのキャプションが画像の上だったりするんですよねー。うはは。</p>
<p> ［2011.4.14追記］<br />
別解として <a href="http://www.tecking.org/archives/2307">skin.js を変更後 Shadowbox.js を新規作成（ビルド）する方法</a>を書きました。RubyとRake（Rubyで動くビルドツール）必須ですが興味のある方はぜひ。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tecking.org/archives/2293/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.tecking.org/archives/2293" />
	</item>
	</channel>
</rss>

