Joomla!,Wordpressでサイトを構築するためのヒント

Joomla!,Wordpressでサイトを構築するためのヒント

購読(RSS)

Wordpress の qTranslate で PHP Warning (Invalid CRT parameters detected ) が出力される

公開日| 2011年12月28日 | コメントはまだありません。

Wordpress の qTranslate というプラグインを使っていると、以下のような警告メッセージが出力されることがあります。

qTranslate Warning: Invalid CRT parameters detected in ... \wp-content\plugins\qtranslate\qtranslate_core.php on line 447

この警告は、Windowsの場合にのみ出力される警告です。
今回は、この警告を出力しないようにするための一つの方法を提示してみます。

警告メッセージの削除方法

警告メッセージなので、無視しても動作に致命的な問題を引き起こすことはありません。
しかし、大量の警告メッセージが出力されるので、できれば、この警告メッセージを削除したいですよね。

その場合、以下のように ‘… \wp-content\plugins\qtranslate\qtranslate_core.php‘ を編集することで対応することができます。

453
454
455
456
457
458
459
460
461
	$search[] = '/(([^%])%4|^%4)/'; $replace[] = '${2}'.$date; // date U
	$format = preg_replace($search,$replace,$format);
 
//	Add Windows 
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
    $format = str_replace('%P','%p',$format);
}	
 
	return $before.strftime($format, $date).$after;
この問題の原因は、非常に単純です。
PHPのstrftimeという日付情報を文字列変換する関数にWindowsでは利用できない ‘%P’ というパラメータが使用されているために発生するものです。
上記では、暫定的に ‘%P’ → ‘%p’ へ変換することで対処しています。

%p 	指定した時刻に応じた大文字の 'AM' あるいは 'PM' 	00:31 なら AM、22:23 なら PM
%P 	指定した時刻に応じた小文字の 'am' あるいは 'pm' 	00:31 なら am、22:23 なら pm

これは、必ずしも正しい解決方法ではないかもしれません。ただ、本質的に伝えたい情報が、大文字から小文字へ変換されるだけなので、一つの方法としては有りだと思います。 :)


ブックマークへ追加: はてなブックマークへ追加するdel.icio.usLivedoor ClipYahoo!FC2Nifty ClipPOOKMARK. AirlinesBuzzurl(バザール)Choixnewsing

Trackback URL

このコメントは管理人から承認された後、表示されます。


コメント

コメントをどうぞ





*