<?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/solution/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>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/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>
		<item>
		<title>WordPressでjQueryのプラグインが正しく動作しない場合の対処法</title>
		<link>http://inspire-tech.jp/2012/06/dont-work-jquery-plugins-in-the-wordpress/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dont-work-jquery-plugins-in-the-wordpress</link>
		<comments>http://inspire-tech.jp/2012/06/dont-work-jquery-plugins-in-the-wordpress/#comments</comments>
		<pubDate>Sun, 24 Jun 2012 08:04:25 +0000</pubDate>
		<dc:creator><![CDATA[家富 正幸]]></dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[問題解決]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://inspire-tech.jp/?p=1296</guid>
		<description><![CDATA[WordPressのテーマで、jQueryを利用したプラグインを組み込んでいるのにもかかわらず、エラーが発生して利用出来ないことがあります。 原因 これはテーマ側で wp_enquere_script() 関数を用いて、 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>WordPressのテーマで、jQueryを利用したプラグインを組み込んでいるのにもかかわらず、エラーが発生して利用出来ないことがあります。</p>
<h3><span>原因</span></h3>
<p>これはテーマ側で <code>wp_enquere_script()</code> 関数を用いて、WordPress本体に附属するjQueryを利用している場合によく発生する問題です。</p>
<pre class="brush: php">
/* WordPress附属のjQueryを、wp_head() 内で読み込む */
wp_enqueue_script('jquery');
</pre>
<p>WordPressの <code>wp_enqueue_script()</code> 関数を用いてjQueryを読み込んだ場合、通常利用できるはずのjQueryのインスタンスである$変数が利用できません。</p>
<p>これは、WordPress附属のjQueryでは他のライブラリとの競合を防ぐために <code>jQuery.noConflict()</code> を自動的に実行させているため、$変数が設定されないのが原因です。</p>
<h3><span>対処</span></h3>
<p>テーマ側で独自にjQueryを用意して読み込んだり設置してもかまわないのですが、プラグインなどで <code>wp_enqueue_script('jquery')</code> でjQueryを呼び出されてしまうと、既にテーマ附属のjQueryが読み込まれているのにもかかわらず、WordPressに附属しているjQueryも読み込まれてしまいます。</p>
<p>そのため、<strong>scriptタグの記述される順番によっては、WordPress附属のjQueryが優先され、<code>jQuery.noConflict()</code> 関数が実行されてしまうために$変数が使えなくなる事もあります</strong>。</p>
<p>そのため、いかなる場合にも正常に動作させられるようにするには、jQueryを利用するコードを工夫する必要があります。</p>
<h3><span>問題の起きないコード</span></h3>
<p>下記のように、jQueryのインスタンスを$変数として利用できるスコープを作り、その内部にjQueryを利用したコードを書きましょう。</p>
<pre class="brush: js">
(function($) {
    /* いつも通りのjQueryを利用したコードを書く */
    $(function() {
        /* 初期化コードなど */
    });
})(jQuery);
</pre>
<p>こうすることで、WordPressに附属するjQueryが利用された場合でも問題無く$変数を使ったコードを実行することができますし、他のフレームワークとのバッティングも起きません。</p>
]]></content:encoded>
			<wfw:commentRss>http://inspire-tech.jp/2012/06/dont-work-jquery-plugins-in-the-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPressのGoogleMap連携プラグイン「WP-GoogleMaps」を利用する際に気をつけること</title>
		<link>http://inspire-tech.jp/2012/02/wordpress_wp_googlemaps_plugin/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wordpress_wp_googlemaps_plugin</link>
		<comments>http://inspire-tech.jp/2012/02/wordpress_wp_googlemaps_plugin/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 14:58:40 +0000</pubDate>
		<dc:creator><![CDATA[家富 正幸]]></dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[問題解決]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://inspire-tech.jp/?p=1314</guid>
		<description><![CDATA[WordPress上にてGoogleMapsAPIを利用する必要があったので、比較的使いやすそうなWP-GoogleMapsというプラグインを利用してみたところ、日本語が文字化けしてしまって使い物にならないというバグに遭 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>WordPress上にてGoogleMapsAPIを利用する必要があったので、比較的使いやすそうな<strong>WP-GoogleMaps</strong>というプラグインを利用してみたところ、<strong>日本語が文字化けしてしまって使い物にならない</strong>というバグに遭遇して解決したので、プラグインの紹介とその解決方法を掲載します。</p>
<ul>
<li><a href="http://wordpress.org/extend/plugins/wp-google-maps/" title="WordPress › WP Google Maps « WordPress Plugins">WP Google Maps</a></li>
</ul>
<p><span id="more-1314"></span></p>
<h3><span>WP-GoogleMapsプラグインの概要</span></h3>
<div class="component img"><a href="http://inspire-tech.jp/wp-content/uploads/2012/02/wp-google-maps-11.png"><img src="http://inspire-tech.jp/wp-content/uploads/2012/02/wp-google-maps-11-570x626.png" alt="" title="wp-google-maps-1" width="570" height="626" class="alignleft size-large wp-image-1324" /></a></div>
<p>WP-GoogleMapsは1ブログ1マップという感じで実装するプラグインで、1つのマップの中にいくつでもマーカーを落とし込むことができます。</p>
<p class="note">今のところ1つしかマップが登録できないのですが、ショートコードにidという記載があるため、もしかしたら今後複数のマップの管理などもできるようになるかもしれません。</p>
<h4>有償のアドオンが存在する</h4>
<p>有償のアドオンが存在し、アドオンを導入することで、</p>
<p>・デフォルトのマーカーアイコンの変更<br />
・マーカー毎のアイコンの変更<br />
・フキダシのテキストの変更<br />
・フキダシへの画像挿入<br />
・フキダシへのリンクの挿入<br />
・マーカー情報のインポート、エクスポート（CSVファイル形式）</p>
<p>といったことが可能になります。</p>
<ul>
<li><a href="http://www.wpgmaps.com/" title="WP Google Maps - WordPress Google Maps Plugin">WP Google Maps &#8211; WordPress Google Maps Plugin</a></li>
</ul>
<h3><span>問題点</span></h3>
<p>プラグインを普通に導入すると、マーカー設置の際に日本語を入れると、文字化けして住所検索もできず、全く使い物になりません。</p>
<div class="component img">
<a href="http://inspire-tech.jp/wp-content/uploads/2012/02/wp-google-maps-21.png"><img src="http://inspire-tech.jp/wp-content/uploads/2012/02/wp-google-maps-21-570x137.png" alt="" title="wp-google-maps-2" width="570" height="137" class="alignleft size-large wp-image-1323" /></a></div>
<p>原因はプラグインのソースコードに有り、管理用のデータベーステーブルを生成する際、文字コードをlatin1として指定しているためです。</p>
<h4>wpGoogleMaps.php 1064行目付近</h4>
<pre class="brush: php">
    $sql = "
        CREATE TABLE `".$table_name."` (
          `id` int(11) NOT NULL AUTO_INCREMENT,
          `map_id` int(11) NOT NULL,
          `address` varchar(700) NOT NULL,
          `desc` varchar(700) NOT NULL,
          `pic` varchar(700) NOT NULL,
          `link` varchar(700) NOT NULL,
          `icon` varchar(700) NOT NULL,
          `lat` varchar(100) NOT NULL,
          `lng` varchar(100) NOT NULL,
          `anim` varchar(3) NOT NULL,
          PRIMARY KEY (`id`)
        ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; // この CHARSET=latin1 が問題
    ";
</pre>
<h3><span>改善する方法</span></h3>
<h4>プラグインインストール前</h4>
<p>WordPressの自動インストール機能を利用せず、アーカイブとしてまずはファイルをダウンロード・解答し、ソースコードを修正します。</p>
<pre class="brush: diff">
--- wpGoogleMaps.php    2012-02-17 18:24:32.000000000 +0900
+++ wpGoogleMaps2.php   2012-02-21 23:50:50.002343200 +0900
@@ -1074,7 +1074,7 @@
           `lng` varchar(100) NOT NULL,
           `anim` varchar(3) NOT NULL,
           PRIMARY KEY (`id`)
-        ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
+        )
     ";
 
    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
</pre>
<p>具体的には、<code>ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1</code> の指定はいらないので削ってしまいます。</p>
<h4>プラグインインストール後</h4>
<p>コンソールまたは管理ツール（PhpMyAdminなど）でテーブルの文字コードをutf8に変更します。</p>
]]></content:encoded>
			<wfw:commentRss>http://inspire-tech.jp/2012/02/wordpress_wp_googlemaps_plugin/feed/</wfw:commentRss>
		<slash:comments>68</slash:comments>
		</item>
		<item>
		<title>CakePHPでデバッグモード以外でもPHPのエラーログを取る超簡単な方法</title>
		<link>http://inspire-tech.jp/2011/10/cakephp_error_logging/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cakephp_error_logging</link>
		<comments>http://inspire-tech.jp/2011/10/cakephp_error_logging/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 15:56:46 +0000</pubDate>
		<dc:creator><![CDATA[家富 正幸]]></dc:creator>
				<category><![CDATA[その他]]></category>
		<category><![CDATA[問題解決]]></category>
		<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://inspire-tech.jp/?p=1196</guid>
		<description><![CDATA[CakePHPではデバッグレベルを0としている場合、あらゆるエラーが非表示になり、CakePHPのエラーをはじめPHPのWarningやFatalエラーも記録されなくなります。 例えば、その状態で致命的なエラーが発生して [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>CakePHPではデバッグレベルを0としている場合、あらゆるエラーが非表示になり、CakePHPのエラーをはじめPHPのWarningやFatalエラーも記録されなくなります。</p>
<p>例えば、その状態で致命的なエラーが発生しても、画面が真っ白になったり、<code>ErrorHandler::error404</code>メソッドが実行されるだけで、どこかで能動的<code>に$this->log</code>などで記録していない限り、解決につながる情報が記録されません。</p>
<p>そんな時、下記ブログを参考にカスタムエラーハンドラや、PHPエラーを記録する条件を定義しておくだけで、手軽にログを取ることができるようになります。</p>
<ul>
<li><a href="http://d.hatena.ne.jp/bennylee/20100427/1272368893" title="CakePHPでdebug=0の際にset_error_handler - benny毎日ラボ">CakePHPでdebug=0の際にset_error_handler &#8211; benny毎日ラボ</a></li>
</ul>
<p>この中の内容で、自分も利用させて頂いている2つめの方法が手軽でよいので、紹介させて頂きます。</p>
<blockquote cite="http://d.hatena.ne.jp/bennylee/20100427/1272368893" title="CakePHPでdebug=0の際にset_error_handler - benny毎日ラボ"><p>
/app/config/bootstrap.phpの中にphpエラーログを常に/app/tmp/log/php_error.logに出力するとか<br />
例えば：<br />
if ( Configure::read(&#8216;debug&#8217;) == 0 )  {<br />
   error_reporting(E_ALL &amp; ~E_NOTICE &amp; ~E_DEPRECATED);<br />
   ini_set(&#8216;display_errors&#8217;, 0);   ini_set(&#8216;log_errors&#8217;, 1);<br />
   ini_set(&#8216;error_log&#8217;, LOGS . DS . &#8216;php_error.log&#8217;);<br />
}
</p></blockquote>
<p><cite><a href="http://d.hatena.ne.jp/bennylee/20100427/1272368893">CakePHPでdebug=0の際にset_error_handler &#8211; benny毎日ラボ</a></cite></p>
<p>下記のコードをAPP/config/bootstrap.phpに書いておくだけです。</p>
<pre class="brush: php">
if (Configure::read('debug') == 0) {
    error_reporting(E_ALL &#038; ~E_NOTICE &#038; ~E_DEPRECATED);
    ini_set('display_errors', 0);
    ini_set('log_errors', 1);
    ini_set('error_log', LOGS . DS . 'php_error.log');
}
</pre>
<p>これだけで、デバッグレベルが0の場合でも、<code>APP/tmp/logs/php_error.log</code>にエラー情報が記録されるようになります。</p>
]]></content:encoded>
			<wfw:commentRss>http://inspire-tech.jp/2011/10/cakephp_error_logging/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
	</channel>
</rss>
