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

<channel>
	<title>INSPIRE TECH &#187; その他</title>
	<atom:link href="http://inspire-tech.jp/category/other/feed/" rel="self" type="application/rss+xml" />
	<link>http://inspire-tech.jp</link>
	<description>株式会社インスパイアデザインのプログラマーである家富正幸が、デザインやシステム開発、ソーシャルメディアや最近のトレンドなど、Webに関する様々な情報を発信しているブログです。</description>
	<lastBuildDate>Fri, 29 Jan 2016 05:25:58 +0000</lastBuildDate>
	<language>ja</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.8.41</generator>
	<item>
		<title>WordPressを設置したドメインや設置ディレクトリが変更になった場合に、たった5分で全てのURLを書き換える方法</title>
		<link>http://inspire-tech.jp/2013/10/wordpress-search-replace-db/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wordpress-search-replace-db</link>
		<comments>http://inspire-tech.jp/2013/10/wordpress-search-replace-db/#comments</comments>
		<pubDate>Fri, 11 Oct 2013 20:18:11 +0000</pubDate>
		<dc:creator><![CDATA[家富 正幸]]></dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[レビュー]]></category>
		<category><![CDATA[問題解決]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://inspire-tech.jp/?p=1560</guid>
		<description><![CDATA[WordPressをお客様に納品する場合など、最初に仮ドメインで設置をして、公開のタイミングで本ドメインに切り替えるという作業をよく行います。 それ以外にも、WordPressが動いているサーバーのドメインを変更しなくて [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>WordPressをお客様に納品する場合など、最初に仮ドメインで設置をして、公開のタイミングで本ドメインに切り替えるという作業をよく行います。</p>
<p>それ以外にも、WordPressが動いているサーバーのドメインを変更しなくてはならなかったり、ステージングサーバーから公開サーバーにデータコピーをしたりと、WordPressを移設して動かすタイミングって、割と多かったりします。</p>
<h3><span>移設の問題点</span></h3>
<p>移設を行う場合の一番の問題点は、公開URLが変更になることです。</p>
<ol>
<li>テーマファイルのCSSやJavaScriptが読み込まれないためデザインが崩れる</li>
<li>公開URLが正しくないとWordPressの管理画面にログインができない</li>
<li>記事中に設定したリンクや、メディア（画像やファイル）が全てリンクが切れてしまう</li>
</ol>
<p>1. 2. については公開URLの設定さえ元に変更してしまえば問題無いのですが、一番の問題は 3. で、<strong>記事中に設定した内部リンクやら、画像やら添付ファイルやらが全てリンク切れを起こしてしまう</strong>ことです。</p>
<p>Search Regexという正規表現などで記事を検索してURLを置換できるツールなどが、まず考えつく1つの方法です。</p>
<ul>
<li><a href="http://wordpress.org/plugins/search-regex/">WordPress › Search Regex « WordPress Plugins</a></li>
<li><a href="http://nori510.com/archives/10803">【WordPress】全記事から検索して一括置換出来るプラグイン「Search Regex」が素晴らしい | nori510.com</a></li>
</ul>
<p>しかしこのSearch Regexは、通常の投稿や固定ページの内容は置換できますが、カスタム投稿は検索できません。（カスタマイズすれば可能ですが）</p>
<p>またなにより大きな問題として、<strong>このプラグインではカスタムフィールドに入力された内容は対象外</strong>となってしまうため、カスタムフィールドに画像のURLや記事のURLなどが入っている場合、こちらを修正することができません。</p>
<p><span id="more-1560"></span></p>
<h3><span>カスタムフィールドの問題</span></h3>
<p>そのため、カスタムフィールドの値を一気に書き換える場合には、DBから直接UPDATEクエリなどを使って修正するしかなくなりますが、この方法にもまた問題があります。</p>
<p><strong>WordPressのカスタムフィールドには、PHPのシリアライズされたデータが格納されていることがある</strong>からです。</p>
<p>シリアライズされたデータというのは、下記のようなテキストデータです。<br />
これはPHPの配列やオブジェクトなどを文字列に変換したもので、PHPのunserialie関数を通すことで元の配列などに戻すことが可能です。</p>
<pre class="brush: plain">a:2:{i:2;a:4:{s:5:"title";s:0:"";s:5:"count";i:0;s:12:"hierarchical";i:0;s:8:"dropdown";i:0;}s:12:"_multiwidget";i:1;}</pre>
<p>このシリアライズされた文字列には、元の配列やオブジェクトの中のデータ形式や、格納されているテキストの長さなども保持されていて、<strong>単純に中のテキストを置換したりしてしまうと、テキストの長さが保持されているデータと合わなくなってしまい、データが復元できなくなってしまいます。</strong></p>
<p>そのため、UPDATEクエリを使って一気に直すことができません。</p>
<h3><span>全て解決！便利なPHPスクリプト</span></h3>
<p>そこで活躍するのが下記で公開されている SEARCH REPLACE DB というスクリプト。</p>
<ul>
<li><a href="http://interconnectit.com/products/search-and-replace-for-wordpress-databases/">WordPress Serialized PHP Search Replace Tool | Interconnect IT &#8211; WordPress Consultants, Web Development and Web Design</a></li>
</ul>
<p>海外の方が開発されCODEXにも記載されている非常に有用なスクリプトで、<strong>シリアライズされたデータも含めて、DBにあるレコードから特定の文字列を一気に置換することが可能</strong>になります！</p>
<h4>まずはダウンロード</h4>
<p>下記のリンクをクリックしてファイルを保存してください。</p>
<div class="component img"><img class="alignleft size-full wp-image-1588" alt="searchreplacedb_dl" src="http://inspire-tech.jp/wp-content/uploads/2013/10/searchreplacedb_dl.jpeg" width="570" height="180" /></div>
<h4>解凍したファイルをWordPressと同ディレクトリにアップ</h4>
<p>解凍して出てきた searchreplacedb2.php を、WordPressのwp-config.phpが存在するディレクトリにアップします。</p>
<div class="component img"><img class="alignleft size-full wp-image-1586" alt="searchreplacedb_set_2" src="http://inspire-tech.jp/wp-content/uploads/2013/10/searchreplacedb_set_2.jpeg" width="570" height="434" /></div>
<h4>ファイルにアクセス</h4>
<p>下記のような画面が表示されればOKです。</p>
<div class="component img"><img class="alignleft size-large wp-image-1593" alt="Search_and_replace_DB1" src="http://inspire-tech.jp/wp-content/uploads/2013/10/Search_and_replace_DB1-570x362.jpeg" width="570" height="362" /></div>
<p>Submitをクリックして次に進んでください。</p>
<div class="component img"><img class="alignleft size-full wp-image-1594" alt="Search_and_replace_DB2" src="http://inspire-tech.jp/wp-content/uploads/2013/10/Search_and_replace_DB2.jpeg" width="570" height="241" /></div>
<h4>DBへの接続情報を確認</h4>
<p>wp-config.php と同じディレクトリにアップされていれば、自動的にwp-config.phpに存在するDB情報を読み取って表示してくれます。</p>
<div class="component img"><img class="alignleft size-full wp-image-1592" alt="Search_and_replace_DB3" src="http://inspire-tech.jp/wp-content/uploads/2013/10/Search_and_replace_DB3.jpeg" width="570" height="468" /></div>
<p>Submitをクリックして次に進んでください。</p>
<h4>書き換えたいテーブルを選択</h4>
<p>書き換えたい文字列があるテーブルを選択します。<br />
最低限、投稿本体が格納されている <strong>posts</strong> およびにカスタムフィールドの格納されている <strong>postmeta</strong>、設定値が格納されている <strong>options</strong> は選択しましょう。</p>
<div class="component img"><img class="alignleft size-full wp-image-1591" alt="Search_and_replace_DB4" src="http://inspire-tech.jp/wp-content/uploads/2013/10/Search_and_replace_DB4.jpeg" width="570" height="488" /></div>
<p>その他のテーブルについては、必要に応じて選択してください。<br />
ユーザーのプロフィールなどにも書き換えたい文字列が存在するようならば、<strong>usermeta</strong> なども選択する必要があるでしょう。</p>
<h4>検索する文字列と置換する文字列を入力</h4>
<p>検索する文字列、すなわち書き換え元となる文字列と、置換する文字列を入力します。</p>
<div class="component img"><img class="alignleft size-full wp-image-1590" alt="Search_and_replace_DB5" src="http://inspire-tech.jp/wp-content/uploads/2013/10/Search_and_replace_DB5.jpeg" width="570" height="303" /></div>
<p>WordPressを移設した場合は、以前に設置してあったURLを検索する文字列に、新しく設置した先を置換する文字列に指定します。</p>
<p>例えば <code>http://example.com/blog/wp</code> に設置してあったWordPressを <code>http://hogehoge.com/wp</code> に移設した場合は、下記のように記述してください。</p>
<dl>
<dt>検索する文字列</dt>
<dd><code>example.com/blog/wp/</code></dd>
<dt>置換する文字列</dt>
<dd><code>hogehoge.com/wp/</code></dd>
</dl>
<p>ポイントは <code>http://</code> を抜くことです。</p>
<p>これはデータベースの中に <code>http://</code> を抜いたドメインの状態で保存されているレコードがあるため、一部書き換わらないレコードが出てきてしまうためです。</p>
<p>入力が終わったらSubmitをクリックしましょう。</p>
<h4>置換完了</h4>
<p>めでたく置換が完了しました。</p>
<div class="component img"><img class="alignleft size-full wp-image-1589" alt="Search_and_replace_DB6" src="http://inspire-tech.jp/wp-content/uploads/2013/10/Search_and_replace_DB6.jpeg" width="570" height="203" /></div>
<p>総計で何レコードが書き換えられたかなどがレポートされます。</p>
<h4>最後にファイルを削除</h4>
<p>置換が正しく完了したら、設置した <code>searchreplacedb2.php</code> は<strong style="color: red;">必ず削除してください。</strong><br />
放置しておくと<strong style="color: red;">パスワード認証も何も無くデータベースを書き換えられてしまうため、非常に危険です。</strong></p>
<h3><span>たったこれだけ</span></h3>
<p>たったこれだけのステップで、面倒なURLの置換作業が全て完了します。<br />
慣れればFTPからアップして5分もかからず作業を終えることができるでしょう。</p>
<p>1点注意として、データベースを書き換える作業になるため、<strong>作業前には必ずデータベースのバックアップをとった上で作業をしてください。</strong><br />
置換するテキストなどが間違えていた場合に、取り返しのつかないことになる場合があります。</p>
<p>WordPressの移設はとても手間だと悩んでいた方、是非お試しください。</p>
]]></content:encoded>
			<wfw:commentRss>http://inspire-tech.jp/2013/10/wordpress-search-replace-db/feed/</wfw:commentRss>
		<slash:comments>47</slash:comments>
		</item>
		<item>
		<title>Logicoolのマウス「G700s」をMacOS 10.8で使ったとき、4〜11ボタンに左クリックが発生してしまう場合の対処法</title>
		<link>http://inspire-tech.jp/2013/10/logicool_g700s_click_fix/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=logicool_g700s_click_fix</link>
		<comments>http://inspire-tech.jp/2013/10/logicool_g700s_click_fix/#comments</comments>
		<pubDate>Sun, 06 Oct 2013 17:38:24 +0000</pubDate>
		<dc:creator><![CDATA[家富 正幸]]></dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[レビュー]]></category>
		<category><![CDATA[問題解決]]></category>

		<guid isPermaLink="false">http://inspire-tech.jp/?p=1546</guid>
		<description><![CDATA[Logicoolから発売されているゲーミングマウスG700sは通常のマウスと違い副ボタンが7つも存在しており、デザインにさえ目をつぶってしまえば（笑）、大変に便利なマウスです。 LOGICOOL 充電式ゲーミングマウス  [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><img src="http://inspire-tech.jp/wp-content/uploads/2013/10/52bda3192af80c6866a05eac21cccc55-570x293.png" alt="スクリーンショット 2013-10-07 2.37.08" width="570" height="293" class="alignleft size-large wp-image-1555" /></p>
<p>Logicoolから発売されているゲーミングマウスG700sは通常のマウスと違い副ボタンが7つも存在しており、デザインにさえ目をつぶってしまえば（笑）、大変に便利なマウスです。</p>
<ul>
<li><a href="http://www.amazon.co.jp/gp/product/B00CDCFBD4/ref=as_li_qf_sp_asin_tl?ie=UTF8&#038;camp=247&#038;creative=1211&#038;creativeASIN=B00CDCFBD4&#038;linkCode=as2&#038;tag=simpletype-22">LOGICOOL 充電式ゲーミングマウス G700s</a><img src="http://ir-jp.amazon-adsystem.com/e/ir?t=simpletype-22&#038;l=as2&#038;o=9&#038;a=B00CDCFBD4" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</li>
</ul>
<p>この副ボタンにはアプリケーション毎に各種ショートカットや、メディアキーなどの機能を割り当てることができます。</p>
<p>例えばブラウザを利用しているときには「ボタン4で履歴を戻り、ボタン5で履歴を進む動作を行う」。<br />
PHPStormを使っている時には「ボタン4で切り取り、ボタン5で貼り付け、ボタン6でファイル検索ウィンドウを立ち上げ、ボタン7でクラス検索を立ち上げる」といった使い方ができます。<br />
<span id="more-1546"></span></p>
<h3><span>Mac OS 10.8上での問題</span></h3>
<p>購入してから大変便利に利用しているのですが、Mac OS 10.8で利用していると、ボタン4〜11をクリックしながらマウスを少しでも動かしてしまうと、なぜか左クリックが発生するという現象に悩まされてきました。</p>
<p>これがどういったことかというと、ブラウザのリンク上でボタン4を押して「戻る」を行った場合、ボタン4をクリックしながらマウスを少しでも動かしてしまうと、リンクがクリックされたことになってしまい、新しいリンクが開いてしまいます。</p>
<h3><span>解決策</span></h3>
<p>マカー御用達のKeyRemap4MacBookを利用します。</p>
<ul>
<li><a href="https://pqrs.org/macosx/keyremap4macbook/index.html.ja" >KeyRemap4MacBook &#8211; OS X用のソフトウェア</a></li>
</ul>
<p>こちらのprivate.xmlに下記のXMLコードを貼り付けて保存します。</p>
<pre class="brush: xml">
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;root&gt;
  &lt;item&gt;
    &lt;name&gt;Extra Mouse Button Click Ignore&lt;/name&gt;
      &lt;item&gt;
        &lt;name&gt;Button 4&lt;/name&gt;
        &lt;identifier&gt;extra_mouse_button_click_ignore.button_4&lt;/identifier&gt;
        &lt;autogen&gt;__PointingButtonToPointingButton__ PointingButton::BUTTON4, PointingButton::NONE&lt;/autogen&gt;
      &lt;/item&gt;
      &lt;item&gt;
        &lt;name&gt;Button 5&lt;/name&gt;
        &lt;identifier&gt;extra_mouse_button_click_ignore.button_5&lt;/identifier&gt;
        &lt;autogen&gt;__PointingButtonToPointingButton__ PointingButton::BUTTON5, PointingButton::NONE&lt;/autogen&gt;
      &lt;/item&gt;
      &lt;item&gt;
        &lt;name&gt;Button 6&lt;/name&gt;
        &lt;identifier&gt;extra_mouse_button_click_ignore.button_6&lt;/identifier&gt;
        &lt;autogen&gt;__PointingButtonToPointingButton__ PointingButton::BUTTON6, PointingButton::NONE&lt;/autogen&gt;
      &lt;/item&gt;
      &lt;item&gt;
        &lt;name&gt;Button 7&lt;/name&gt;
        &lt;identifier&gt;extra_mouse_button_click_ignore.button_7&lt;/identifier&gt;
        &lt;autogen&gt;__PointingButtonToPointingButton__ PointingButton::BUTTON7, PointingButton::NONE&lt;/autogen&gt;
      &lt;/item&gt;
      &lt;item&gt;
        &lt;name&gt;Button 8&lt;/name&gt;
        &lt;identifier&gt;extra_mouse_button_click_ignore.button_8&lt;/identifier&gt;
        &lt;autogen&gt;__PointingButtonToPointingButton__ PointingButton::BUTTON8, PointingButton::NONE&lt;/autogen&gt;
      &lt;/item&gt;
      &lt;item&gt;
        &lt;name&gt;Button 9&lt;/name&gt;
        &lt;identifier&gt;extra_mouse_button_click_ignore.button_9&lt;/identifier&gt;
        &lt;autogen&gt;__PointingButtonToPointingButton__ PointingButton::BUTTON9, PointingButton::NONE&lt;/autogen&gt;
      &lt;/item&gt;
      &lt;item&gt;
        &lt;name&gt;Button 10&lt;/name&gt;
        &lt;identifier&gt;extra_mouse_button_click_ignore.button_10&lt;/identifier&gt;
        &lt;autogen&gt;__PointingButtonToPointingButton__ PointingButton::BUTTON10, PointingButton::NONE&lt;/autogen&gt;
      &lt;/item&gt;
      &lt;item&gt;
        &lt;name&gt;Button 11&lt;/name&gt;
        &lt;identifier&gt;extra_mouse_button_click_ignore.button_11&lt;/identifier&gt;
        &lt;autogen&gt;__PointingButtonToPointingButton__ PointingButton::BUTTON11, PointingButton::NONE&lt;/autogen&gt;
      &lt;/item&gt;
      &lt;item&gt;
        &lt;name&gt;Button 12&lt;/name&gt;
        &lt;identifier&gt;extra_mouse_button_click_ignore.button_12&lt;/identifier&gt;
        &lt;autogen&gt;__PointingButtonToPointingButton__ PointingButton::BUTTON12, PointingButton::NONE&lt;/autogen&gt;
      &lt;/item&gt;
      &lt;item&gt;
        &lt;name&gt;Button 13&lt;/name&gt;
        &lt;identifier&gt;extra_mouse_button_click_ignore.button_13&lt;/identifier&gt;
        &lt;autogen&gt;__PointingButtonToPointingButton__ PointingButton::BUTTON13, PointingButton::NONE&lt;/autogen&gt;
      &lt;/item&gt;
      &lt;item&gt;
        &lt;name&gt;Button 14&lt;/name&gt;
        &lt;identifier&gt;extra_mouse_button_click_ignore.button_14&lt;/identifier&gt;
        &lt;autogen&gt;__PointingButtonToPointingButton__ PointingButton::BUTTON14, PointingButton::NONE&lt;/autogen&gt;
      &lt;/item&gt;
      &lt;item&gt;
        &lt;name&gt;Button 15&lt;/name&gt;
        &lt;identifier&gt;extra_mouse_button_click_ignore.button_15&lt;/identifier&gt;
        &lt;autogen&gt;__PointingButtonToPointingButton__ PointingButton::BUTTON15, PointingButton::NONE&lt;/autogen&gt;
      &lt;/item&gt;
  &lt;/item&gt;
&lt;/root&gt;
</pre>
<p>すでにprivate.xmlを記述してある場合は、適宜マージしてください。</p>
<h3><span>有効化</span></h3>
<p>設定ウィンドウからXMLをリロードすると下記のように設定が表示されます。</p>
<div class="component img"><img src="http://inspire-tech.jp/wp-content/uploads/2013/10/288e00a669adc05385589d8de88533f8-570x551.png" alt="スクリーンショット 2013-10-07 2.31.13" width="570" height="551" class="alignleft size-large wp-image-1552" /></div>
<p>表示された設定の「Extra Mouse Button Click Ignore」から、クリックを無効にしたいボタンにチェックを入れます。</p>
<p>これで単純にボタンに割り当てた機能だけが動作し、左クリックは発生しなくなります。</p>
]]></content:encoded>
			<wfw:commentRss>http://inspire-tech.jp/2013/10/logicool_g700s_click_fix/feed/</wfw:commentRss>
		<slash:comments>49</slash:comments>
		</item>
		<item>
		<title>SublimeTextで最後に開いていた文章（タブ）が、次に起動したときも開いてしまうのを防ぐ方法</title>
		<link>http://inspire-tech.jp/2013/09/sublimetext_disable_remember_open_files/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sublimetext_disable_remember_open_files</link>
		<comments>http://inspire-tech.jp/2013/09/sublimetext_disable_remember_open_files/#comments</comments>
		<pubDate>Thu, 19 Sep 2013 10:21:43 +0000</pubDate>
		<dc:creator><![CDATA[家富 正幸]]></dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[参考]]></category>
		<category><![CDATA[問題解決]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://inspire-tech.jp/?p=1537</guid>
		<description><![CDATA[SublimeTextは一度使い始めたら手放せなくなるほど軽くて使い安く、プログラマーだったら絶対に入れておいて損は無いテキストエディタです。 僕は普段はPHPStormでプログラミングをしますが、CSSやJavaScr [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>SublimeTextは一度使い始めたら手放せなくなるほど軽くて使い安く、プログラマーだったら絶対に入れておいて損は無いテキストエディタです。</p>
<p>僕は普段はPHPStormでプログラミングをしますが、CSSやJavaScript、PHPなどをちょこっと編集する際はほとんどコレを利用しています。</p>
<p>しかしながらこのエディタ、起動時に前回開いたファイルがそのままタブとして開かれてしまい、何となく気持ち悪い。</p>
<p>そういうときは <code>Preferences > Settings - User</code> を開き、設定値として下記を追加します。</p>
<pre class="brush: plain">
{
	"hot_exit": false,
	"remember_open_files": false,
}
</pre>
<p>ポイントなのは <code>hot_exit</code> も合わせて <code>false</code> にすることで、<code>remember_open_files</code> のみを <code>false</code> にしただけでは、動作に変わりがありません。</p>
<p>どちらも false とすることで、次回から起動した際にブランクの状態で開かれるようになります。</p>
]]></content:encoded>
			<wfw:commentRss>http://inspire-tech.jp/2013/09/sublimetext_disable_remember_open_files/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Mac OS版のSublime Text 3でConvertToUTF8プラグインが動作しないのを解決する方法</title>
		<link>http://inspire-tech.jp/2013/08/fix-convert-to-utf-8-of-sublime-text-3/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=fix-convert-to-utf-8-of-sublime-text-3</link>
		<comments>http://inspire-tech.jp/2013/08/fix-convert-to-utf-8-of-sublime-text-3/#comments</comments>
		<pubDate>Tue, 13 Aug 2013 08:19:09 +0000</pubDate>
		<dc:creator><![CDATA[家富 正幸]]></dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[問題解決]]></category>
		<category><![CDATA[Mac]]></category>

		<guid isPermaLink="false">http://inspire-tech.jp/?p=1502</guid>
		<description><![CDATA[MacでのテキストエディタといえばSublime Textを利用なさっている方も多いのでは無いでしょうか？ Sublime Textはバージョン２が主流ですが、最近になってバージョン3がパブリックベータとしてリリースされ [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Macでのテキストエディタといえば<strong>Sublime Text</strong>を利用なさっている方も多いのでは無いでしょうか？</p>
<p>Sublime Textはバージョン２が主流ですが、最近になって<strong>バージョン3</strong>がパブリックベータとしてリリースされ、その動作の軽さに惹かれて早速インストールをしました。</p>
<p><a href="http://www.sublimetext.com/3" >Sublime Text &#8211; Download</a></p>
<p>Sublime Textは非常に軽くて使い安い便利なテキストエディタですが、唯一の欠点として<strong>Shitf JISやEUCなどの日本語のエンコーディングに対応していません。</strong><br />
昨今のWeb開発では滅多にお目にかかりませんが、CSVファイルや古いHTMLデータを開く場合などにはどうしても必要になります。</p>
<p>Sublime Textでは<strong>ConvertToUTF8</strong>というプラグインがリリースされており、こちらを利用することでShiftJISなどのエンコードが利用できるようになります。</p>
<p><a href="https://github.com/seanliang/ConvertToUTF8" >seanliang/ConvertToUTF8 · GitHub</a></p>
<h3><span>MacOS版のSublime Text 3で発生する問題</span></h3>
<p>しかしながらMacOS版とLinux版に限り、<strong>Sublime Text 3ではConvertToUTF8プラグインが正しく動作しません。</strong></p>
<p>これはプラグインの作者も注意事項として記載していて、こちらを解決するには別途プラグインをインストールする必要があります。</p>
<blockquote><p>
** For Linux users: ConvertToUTF8 relies on several dynamic libraries which are missing in embedded version of Python of Sublime Text 2 and 3. This plugin can not work fully until you install them manully.</p>
<p>** For OS X users: Sublime Text 3 uses an embedded Python which is facing the same problem as Linux version.</p>
<p>** I&#8217;ve reported this problem to Jon but did not get any response yet, so I will create extra plugins to solve it. If you are eager to use this plugin before they are released, please contact me for more information.
</p></blockquote>
<h3><span>解決するためのプラグイン</span></h3>
<p>Codecs33というプラグインを下記のリポジトリからダウンロードして解凍し、手動でPackagesディレクトリに設置します。</p>
<p><a href="https://github.com/seanliang/Codecs33" >seanliang/Codecs33 · GitHub</a></p>
<h4>設置方法</h4>
<p>Sublime Text 3のPreferencesから、Browse Packagesを選択すると、ファインダーで<strong>Packagesディレクトリ</strong>が開きます。<br />
その直下に、Codecs33という名前で解凍したディレクトリを設置します。</p>
<div class="component img">
<img src="http://inspire-tech.jp/wp-content/uploads/2013/08/0468de58d3b7fd485d54c8f9dfb8aef4.png" alt="" width="570" height="220" class="alignleft size-full wp-image-1514" />
</div>
<h3><span>解決</span></h3>
<p>これで、Sublime Text 3でも正しくConvertToUTF8プラグインが利用可能になります！</p>
<p><img src="http://inspire-tech.jp/wp-content/uploads/2013/08/da0f113195af0bb8e652c44bedca548c-570x428.png" alt="スクリーンショット 2013-08-13 17.15.49" width="570" height="428" class="alignleft size-large wp-image-1523" /></p>
]]></content:encoded>
			<wfw:commentRss>http://inspire-tech.jp/2013/08/fix-convert-to-utf-8-of-sublime-text-3/feed/</wfw:commentRss>
		<slash:comments>53</slash:comments>
		</item>
		<item>
		<title>WordPressの「投稿」機能から「カテゴリー」や「タグ」をメニューごと消す方法</title>
		<link>http://inspire-tech.jp/2013/04/wordpress_remove_category_and_tag_from_post/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wordpress_remove_category_and_tag_from_post</link>
		<comments>http://inspire-tech.jp/2013/04/wordpress_remove_category_and_tag_from_post/#comments</comments>
		<pubDate>Mon, 08 Apr 2013 12:22:05 +0000</pubDate>
		<dc:creator><![CDATA[家富 正幸]]></dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[参考]]></category>
		<category><![CDATA[開発]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://inspire-tech.jp/?p=1472</guid>
		<description><![CDATA[WordPressでカスタム投稿やカスタム分類を使って、新しく分類や投稿を作成することは簡単に情報が見つかります。 しかし逆に、デフォルトの「投稿」機能から「カテゴリー」や「タグ」といった、 デフォルトで設定されている分 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>WordPressでカスタム投稿やカスタム分類を使って、新しく分類や投稿を作成することは簡単に情報が見つかります。</p>
<p>しかし逆に、デフォルトの「投稿」機能から「カテゴリー」や「タグ」といった、 デフォルトで設定されている分類機能を取り外したいといった場合の情報はあまり見つかりません。</p>
<p>そんな時は下記のコードを<code>functions.php</code>に記述して利用します。</p>
<pre class="brush: php">
function my_unregister_taxonomies()
{
	global $wp_taxonomies;

	/*
	 * 投稿機能から「カテゴリー」を削除
	 */
	if (!empty($wp_taxonomies['category']->object_type)) {
		foreach ($wp_taxonomies['category']->object_type as $i => $object_type) {
			if ($object_type == 'post') {
				unset($wp_taxonomies['category']->object_type[$i]);
			}
		}
	}

	/*
	 * 投稿機能から「タグ」を削除
	 */
	if (!empty($wp_taxonomies['post_tag']->object_type)) {
		foreach ($wp_taxonomies['post_tag']->object_type as $i => $object_type) {
			if ($object_type == 'post') {
				unset($wp_taxonomies['post_tag']->object_type[$i]);
			}
		}
	}

	return true;
}

add_action('init', 'my_unregister_taxonomies');
</pre>
<p>これだけで簡単に「カテゴリー」や「タグ」などを外すことができます。</p>
]]></content:encoded>
			<wfw:commentRss>http://inspire-tech.jp/2013/04/wordpress_remove_category_and_tag_from_post/feed/</wfw:commentRss>
		<slash:comments>147</slash:comments>
		</item>
		<item>
		<title>Video-jsを利用して動画をループ再生させる際、2回目の再生以降に「再生ボタン」が表示されたままになる問題を修正する方法</title>
		<link>http://inspire-tech.jp/2012/11/video-js%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6%e5%8b%95%e7%94%bb%e3%82%92%e3%83%ab%e3%83%bc%e3%83%97%e5%86%8d%e7%94%9f%e3%81%95%e3%81%9b%e3%82%8b%e9%9a%9b%e3%80%812%e5%9b%9e%e7%9b%ae%e3%81%ae/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=video-js%25e3%2582%2592%25e5%2588%25a9%25e7%2594%25a8%25e3%2581%2597%25e3%2581%25a6%25e5%258b%2595%25e7%2594%25bb%25e3%2582%2592%25e3%2583%25ab%25e3%2583%25bc%25e3%2583%2597%25e5%2586%258d%25e7%2594%259f%25e3%2581%2595%25e3%2581%259b%25e3%2582%258b%25e9%259a%259b%25e3%2580%25812%25e5%259b%259e%25e7%259b%25ae%25e3%2581%25ae</link>
		<comments>http://inspire-tech.jp/2012/11/video-js%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6%e5%8b%95%e7%94%bb%e3%82%92%e3%83%ab%e3%83%bc%e3%83%97%e5%86%8d%e7%94%9f%e3%81%95%e3%81%9b%e3%82%8b%e9%9a%9b%e3%80%812%e5%9b%9e%e7%9b%ae%e3%81%ae/#comments</comments>
		<pubDate>Fri, 09 Nov 2012 01:30:00 +0000</pubDate>
		<dc:creator><![CDATA[家富 正幸]]></dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[問題解決]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://inspire-tech.jp/?p=1461</guid>
		<description><![CDATA[HTML5のVideoプレイヤーとFlashのビデオプレイヤーを併用し、いろいろな環境に合わせて動画再生を行える非常に便利なスクリプト「Video-js」。 HTML5 Video Player &#124; Video.js 私 [&#8230;]]]></description>
				<content:encoded><![CDATA[<div class="component img"><a href="http://inspire-tech.jp/wp-content/uploads/2012/11/video-js.png"><img src="http://inspire-tech.jp/wp-content/uploads/2012/11/video-js-570x198.png" alt="" title="video-js" width="570" height="198" class="alignleft size-large wp-image-1467" /></a></div>
<p>HTML5のVideoプレイヤーとFlashのビデオプレイヤーを併用し、いろいろな環境に合わせて動画再生を行える非常に便利なスクリプト「Video-js」。</p>
<ul>
<li><a href="http://videojs.com/#section5" >HTML5 Video Player | Video.js</a></li>
</ul>
<p>私も多々利用させて頂いて居るのですが、ここにきてタイトル通りのバグ「ループ再生の2回目以降で、再生ボタンが表示されっぱなしになる」に遭遇し、解決したのでその方法を記載します。</p>
<p>まず、バグが発生する環境は下記の通り。</p>
<ul>
<li>Video-jsのFlashプレイヤーで再生をしている</li>
<li>autoplayオプションをON</li>
<li>loopオプションをON</li>
<li>controlsオプションをON</li>
</ul>
<p>HTML5のプレイヤーでも発生するかは未検証です。</p>
<h3><span>原因</span></h3>
<p>Video.jsでは動画の再生・停止などに合わせイベントを発行しており、内部の動作についてもそのイベントに依存して制御を行っているようです。</p>
<p>今回の問題はループ再生の場合にのみ発生するのですが、その発生機序としては下記のようなものでした。</p>
<ol>
<li>1回目の動画再生が開始：playイベントが発生</li>
<li>playコールバックの処理(1)：「再生ボタン」が「display:none」になる</li>
<li>1回目の動画再生が終了：endedイベントが発生</li>
<li>endedコールバックの処理(1)：「ループ再生なら、再度最初から再生」という処理が実行される</li>
<li>2回目の動画再生が開始：playイベントが発生</li>
<li>playコールバックの処理(1)：「再生ボタン」が「display:none」になる</li>
<li><strong>endedイベントに登録された2つめ以降のコールバックが発生</strong></li>
<li>endedコールバックの処理(2)：「再生ボタン」を再表示させる</li>
</ol>
<p>要はコールバックの登録の順番が悪いというもので、endedイベントの最初のコールバックで再生処理を行ってしまっているものだから、endedイベントに登録された2個目以降のコールバックが、なぜかplayイベントの次に実行されるという訳のわからない状態に。</p>
<p>というわけで、このあたりのコードをさくっと修正すればバグも解消します。</p>
<h3><span>コード修正</span></h3>
<p>video.js（version 3.2.0現在）の926行目付近：</p>
<pre class="brush: js">
  init: function(player, options){
    this._super(player, options);

    player.addEvent("play", _V_.proxy(this, this.hide));
    player.addEvent("ended", _V_.proxy(this, this.show));
  },
</pre>
<p>下記のように改善します。</p>
<pre class="brush: js">
  init: function(player, options){
    this._super(player, options);

    player.addEvent("play", _V_.proxy(this, this.hide));
    
    if (!player.options.loop) {
      player.addEvent("ended", _V_.proxy(this, this.show));
    }
  },
</pre>
<p>要は「ループ指定がされていない場合のみ、再生終了時にボタンを再表示してねん」という処理に変更をかけます。</p>
<p>これで晴れて2回目以降の再生でも、再生ボタンがしっかり消えたままになります。</p>
]]></content:encoded>
			<wfw:commentRss>http://inspire-tech.jp/2012/11/video-js%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6%e5%8b%95%e7%94%bb%e3%82%92%e3%83%ab%e3%83%bc%e3%83%97%e5%86%8d%e7%94%9f%e3%81%95%e3%81%9b%e3%82%8b%e9%9a%9b%e3%80%812%e5%9b%9e%e7%9b%ae%e3%81%ae/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>WordPressを複数ユーザーで利用している際に、「投稿」や「メディア」で自分が投稿したもの以外を表示させないようにするコード</title>
		<link>http://inspire-tech.jp/2012/11/view-of-the-posts-and-media-only-myself/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=view-of-the-posts-and-media-only-myself</link>
		<comments>http://inspire-tech.jp/2012/11/view-of-the-posts-and-media-only-myself/#comments</comments>
		<pubDate>Wed, 07 Nov 2012 01:37:51 +0000</pubDate>
		<dc:creator><![CDATA[家富 正幸]]></dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[開発]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://inspire-tech.jp/?p=1458</guid>
		<description><![CDATA[WordPressを複数のユーザーで運営しているとき、投稿やメディアに関しては自分以外が投稿したものも、標準で表示されるようになっています。 特にメディア関してはフィルタをするような項目がなく、自分が投稿したもののみを表 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>WordPressを複数のユーザーで運営しているとき、投稿やメディアに関しては自分以外が投稿したものも、標準で表示されるようになっています。</p>
<p>特にメディア関してはフィルタをするような項目がなく、自分が投稿したもののみを表示するような仕組みが用意されていません。</p>
<p>そのため、自分が投稿した画像を他人に利用されてしまったり、逆のこともできたりと、少々お粗末な管理になってしまっています。</p>
<h3><span>フィルターフックを使って表示を制限</span></h3>
<p>WordPressではWP_Queryクラスを利用して、一覧や詳細画面を表示する際にデータベースから投稿を取得してきます。</p>
<p>そこで、WP_Queryクラスが投稿を取得する前に、今現在ログインしているユーザーの投稿やメディアのみを取得するようにクエリを書き換える事で、上記のような問題を解決することができます。</p>
<p>下記のコードをfunctions.php等に記述してください。</p>
<pre class="brush: php">
function my_pre_get_posts_filter(&#038;$wp_query)
{
	global $pagenow;
	$user = wp_get_current_user();

	if (WP_ADMIN &#038;&#038; ($post_type = $wp_query->get('post_type'))) {
		if (in_array($pagenow, array('media-upload.php', 'upload.php')) &#038;&#038; $post_type == 'attachment') {
			// メディアの表示情報を制限
			$wp_query->set('author', $user->ID);
		}
	}
}

add_action('pre_get_posts', 'my_pre_get_posts_filter', 10, 1);
</pre>
<p>管理画面で表示しているかどうかの条件判断についてはもっと良い方法があるかと思うんですが、とりあえず上記コードで問題無く動作しています。</p>
]]></content:encoded>
			<wfw:commentRss>http://inspire-tech.jp/2012/11/view-of-the-posts-and-media-only-myself/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>DISQUSをスマートフォンで利用する場合にも、FacebookやTwitterでのログインを可能にする方法</title>
		<link>http://inspire-tech.jp/2012/11/disqus_for_smartphone/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=disqus_for_smartphone</link>
		<comments>http://inspire-tech.jp/2012/11/disqus_for_smartphone/#comments</comments>
		<pubDate>Wed, 07 Nov 2012 01:24:01 +0000</pubDate>
		<dc:creator><![CDATA[家富 正幸]]></dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[開発]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[サービス]]></category>
		<category><![CDATA[ソーシャルメディア]]></category>
		<category><![CDATA[モバイル]]></category>

		<guid isPermaLink="false">http://inspire-tech.jp/?p=1432</guid>
		<description><![CDATA[WordPress等を利用している場合に、コメントシステムとして大変人気のあるDISQUSというコメントシステムがあります。 詳しくは下記のサイトなどをご覧頂くとして、このDISQUSはPC向けだけでは無く、スマートフォ [&#8230;]]]></description>
				<content:encoded><![CDATA[<div class="component img"><a href="http://inspire-tech.jp/wp-content/uploads/2012/11/disqus_1.png"><img class="alignleft size-large wp-image-1434" title="disqus_1" src="http://inspire-tech.jp/wp-content/uploads/2012/11/disqus_1-570x226.png" alt="" width="570" height="226" /></a></div>
<p>WordPress等を利用している場合に、コメントシステムとして大変人気のあるDISQUSというコメントシステムがあります。</p>
<p>詳しくは下記のサイトなどをご覧頂くとして、このDISQUSはPC向けだけでは無く、スマートフォンなどでも表示できるモバイルテーマが標準で附属しています。</p>
<p>しかしこのモバイルテーマ、なぜかPC向けと違い、FacebookやTwitterでログインする機能が省略されてしまっています。</p>
<p>かといってPC版のインターフェースをスマートフォンで利用しようとすると、コメント部分は普通に利用できるものの、ログインウィンドウが画面からはみ出してしまい、相当解像度の高いスマートフォンではないとログインに支障がでてしまいます。</p>
<ul>
<li><a href="http://inspire-tech.jp/wp-admin/post.php?post=1432&amp;action=edit&amp;message=10">投稿の編集 ‹ INSPIRE TECH — WordPress</a></li>
</ul>
<h3><span>スマートフォン向け対応できるCSSを書いた</span></h3>
<p>DISQUSはAPIの管理画面から、独自にCSSを適用することが可能です。</p>
<p>そこで、PC向けのログインウィンドウをスマートフォンで見た際にも、綺麗に画面内に収まるようカスタムCSSを作成してみました。</p>
<p><span id="more-1432"></span></p>
<pre class="brush: css">

.dsq-popup[id] {
	position: absolute !important;
}

.dsq-popup-container .dsq-popup-close {
	right: 5px;
	top: 5px;
	position: absolute !important;
	z-index: 1200 !important;
}

.dsq-popup-container .dsq-popup-title {
	position: relative !important;
}

.dsq-popup-container .dsq-popup-title h3 {
	font-size: 12px !important;
}

.dsq-popup .dsq-tabbed-modal {
	background: none !important;
}

#dsq-popup-message #dsq-login-disqus iframe {
	height: 300px !important;
}

.dsq-popup-body {
	width: auto !important;
}

.dsq-login-box .dsq-popup-body {
	width: 300px !important;
}

.dsq-popup .dsq-modal-tabs {
	width: auto !important;
	float: none !important;
}

#dsq-popup-message.dsq-popup .dsq-modal-tabs li {
	float: left !important;
	width: 43px !important;
}

#dsq-popup-message.dsq-popup .dsq-modal-tabs li a {
	padding: 4px 6px !important;
	text-align: center !important;
	font-size: 0px !important;
	border-bottom: none !important;
}

.dsq-popup .dsq-tab-container {
	padding: 10px !important;
	font-size: 12px !important;
}

#dsq-popup-message.dsq-popup .dsq-modal-tabs li.dsq-active a {
	border-bottom: none !important;
	-webkit-box-shadow: none !important;
	-moz-box-shadow: none !important;
	box-shadow: none !important;
	background: #eee !important;
}

#dsq-popup-message.dsq-popup .dsq-modal-tabs li.dsq-active a:hover {
	border-bottom: none !important;
}
</pre>
<h3><span>適用方法</span></h3>
<p>適用したいアカウントのアピアランスパネルを開きます。</p>
<div class="component img"><a href="http://inspire-tech.jp/wp-content/uploads/2012/11/disqus_2.png"><img src="http://inspire-tech.jp/wp-content/uploads/2012/11/disqus_2-570x171.png" alt="" title="disqus_2" width="570" height="171" class="alignleft size-large wp-image-1435" /></a>
</div>
<p>スクロールして中ほどより下にある、Custom CSSの欄に上記コードを記述して保存します。</p>
<div class="component img"><a href="http://inspire-tech.jp/wp-content/uploads/2012/11/disqus_3.png"><img src="http://inspire-tech.jp/wp-content/uploads/2012/11/disqus_3-570x189.png" alt="" title="disqus_3" width="570" height="189" class="alignleft size-large wp-image-1436" /></a></div>
<h3><span>JavaScriptの設置</span></h3>
<p>上記CSSだけではポップアップウィンドウの位置がおかしくなるため、下記JavaScriptを設置してください。</p>
<pre class="brush: js">
jQuery(function($) {
	setInterval(function() {
		$('#dsq-popup-message').css({
			'position': 'absolute',
			'top': $(window).scrollTop() + 10
		});
	}, 1000);
});
</pre>
<h3><span>スマートフォンでの表示</span></h3>
<p>こんな感じで表示されます。</p>
<div class="component img"><a href="http://inspire-tech.jp/wp-content/uploads/2012/11/disqus_4.jpg"><img src="http://inspire-tech.jp/wp-content/uploads/2012/11/disqus_4-300x533.jpg" alt="" title="disqus_4" width="300" height="533" class="alignleft size-medium wp-image-1451" /></a></div>
<h3><span>注意</span></h3>
<p><strong>カスタムCSSはPC版にももれなく適用されてしまう</strong>ため、PCとスマートフォンで利用する場合には、上記CSSにスマートフォンのみのクラス名やIDなどを追加するなどして、環境によって表示を切り替えられるよう工夫が必要です。</p>
]]></content:encoded>
			<wfw:commentRss>http://inspire-tech.jp/2012/11/disqus_for_smartphone/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>WordPressのマルチサイトで、子ブログでアップロードしたファイルの「実際のファイルパス」を取得する関数を書いた</title>
		<link>http://inspire-tech.jp/2012/06/calc_the_real_file_path_for_child_blog_of_wordpress/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=calc_the_real_file_path_for_child_blog_of_wordpress</link>
		<comments>http://inspire-tech.jp/2012/06/calc_the_real_file_path_for_child_blog_of_wordpress/#comments</comments>
		<pubDate>Fri, 29 Jun 2012 16:59:34 +0000</pubDate>
		<dc:creator><![CDATA[家富 正幸]]></dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[問題解決]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[マルチサイト]]></category>

		<guid isPermaLink="false">http://inspire-tech.jp/?p=1394</guid>
		<description><![CDATA[WordPressのマルチサイトを利用して子ブログを作った場合、 子ブログでアップロードしたメディアファイルは、 全て /wp-content/blogs.dir/{blog_id}/{year}/{month}/{fi [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>WordPressのマルチサイトを利用して子ブログを作った場合、<br />
子ブログでアップロードしたメディアファイルは、<br />
全て <code>/wp-content/blogs.dir/{blog_id}/{year}/{month}/{file_name}</code> に保存されるようになっています。</p>
<p>しかしながら、実際にアップロードしたファイルのURLを取得すると、<br />
<code>/{account_name}/files/{year}/{month}/{file_name}</code> というURLが帰ってきます。<br />
これは、マルチサイト用の <code>.htaccess</code> にURLの書き換え処理が記載されているためです。</p>
<pre class="brush: plain">
# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
</pre>
<p>このURLに直接アクセスすればファイルは表示されますし、通常の利用上では全く問題はありません。</p>
<p>しかしながら、サムネイルを生成する際に非常に便利なライブラリである TimThumbなどを利用する際に、この書き換えられたURLが問題になります。</p>
<ul>
<li><a href="http://code.google.com/p/timthumb/" title="TimThumb" target="_blank">TimThumb</a></li>
</ul>
<p>TimThumbは、与えられたURLから実際のファイルパスを計算し、ファイルを読み込もうとします。</p>
<p>しかし、この与えられたURLは <code>.htaccess</code> により書き換えられたダミーのURLのため、実際にこの場所にはファイルは存在しません。</p>
<p>そのため、書き換えられる前のURLが必要になります。</p>
<h3><span>関数作った</span></h3>
<p>下記のような関数を作ってみました。</p>
<pre class="brush: php">
function ms_calc_media_url($blog_id, $media_url)
{
	global $wpdb;

	switch_to_blog($wpdb->siteid);
	$url = preg_replace('|^' . get_blog_option($blog_id, 'siteurl') . '/(files/[\d]{4}/[\d]{2}/.+)$|', get_bloginfo('url') . '/wp-content/blogs.dir/' . $blog_id . '/$1', $media_url);
	restore_current_blog();

	return $url;
}
</pre>
<p><code>$blog_id</code> に当該のファイルをアップロードした子ブログのIDを指定して、<code>$media_url</code> にファイルのURLを与えれば、書き換えられる前のURLを計算して出力します。</p>
<p>この関数を使うことで、問題無くTimThumbなどのライブラリを活用できます。</p>
]]></content:encoded>
			<wfw:commentRss>http://inspire-tech.jp/2012/06/calc_the_real_file_path_for_child_blog_of_wordpress/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>WordPressのマルチブログで、子ブログにデフォルトのテーマを設定する方法（子テーマ対応）</title>
		<link>http://inspire-tech.jp/2012/06/default_theme_setting_for_child_blog/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=default_theme_setting_for_child_blog</link>
		<comments>http://inspire-tech.jp/2012/06/default_theme_setting_for_child_blog/#comments</comments>
		<pubDate>Thu, 28 Jun 2012 06:55:59 +0000</pubDate>
		<dc:creator><![CDATA[家富 正幸]]></dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[問題解決]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[マルチサイト]]></category>

		<guid isPermaLink="false">http://inspire-tech.jp/?p=1382</guid>
		<description><![CDATA[WordPressをマルチブログで利用する場合に、子サイトのテーマをあらかじめ設定しておく方法を紹介します。 親サイトの functions.php に下記の記述をするだけです。 function default_the [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>WordPressをマルチブログで利用する場合に、子サイトのテーマをあらかじめ設定しておく方法を紹介します。</p>
<p>親サイトの <code>functions.php</code> に下記の記述をするだけです。</p>
<pre class="brush: php">
function default_theme_setting()
{
	update_option('template', 'theme_name');
	update_option('stylesheet', 'theme_name');
	update_option('current_theme', 'Theme Name');
}

add_action('populate_options', 'default_theme_setting');
</pre>
<p><code>theme_name</code> となっている箇所は、テーマのディレクトリ名を入れます。<br />
<code>Theme Name</code> となっている箇所は、テーマの名称を入れておきます。</p>
<h3><span>子テーマを指定する方法</span></h3>
<p>上記の設定で、あるテーマの子テーマを設定しようとすると上手くいきません。<br />
これは、下記の記述にすることで対応可能です。</p>
<pre class="brush: php">
function default_theme_setting()
{
	update_option('template', 'parent_theme_name');
	update_option('stylesheet', 'child_theme_name');
	update_option('current_theme', 'Child Theme Name');
}

add_action('populate_options', 'default_theme_setting');
</pre>
<p><code>parent_theme_name</code> は親テーマのディレクトリ名を入れます。<br />
<code>child_theme_name</code> は子テーマのディレクトリ名を入れます。</p>
<p>要は <code>stylesheet</code> というオプションに子テーマ名を設定し、<code>template</code> というオプションには親テーマを設定しておかなきゃイカンよ、ということです。</p>
]]></content:encoded>
			<wfw:commentRss>http://inspire-tech.jp/2012/06/default_theme_setting_for_child_blog/feed/</wfw:commentRss>
		<slash:comments>79</slash:comments>
		</item>
	</channel>
</rss>
