|
WordPressME2.2インストールメモ
WordPressMEは日本ユーザ向けにカスタマイズしたMultilingual Edition。 マルチリンガルと書いてはいるが、今のところ実質日本語バージョンのようだ。 本家WordPress配布元 WordPress ? Blog Tool and Weblog Platform WordPressME配布元 WordPress Japan 大きく分けて2.0系と2.2系の2本立てとなっており、2.2系のほうは文字コードがUTF-8のみの対応となっている。 2.0系はEUC-JPに対応しているので、EUC-JPで無ければ困る場合は2.0系を使うことになる。 基本的に文字コードなど、日本向けローカライズ以外はオリジナルとほとんど同じの様子。 ○EUC-JPの環境で無理やりUTF-8な2.2系を動かす。 インストールしたサーバは、PHPもMySQLもEUC-JP向けの設定になっていたが、どうせなら新しいほうを入れたかったので無理やり2.0系をインストールした。 当然文字コードが違うため、日本語をPOSTした場合うまくいかない。 .htaccessとmbstring関数で無理やり回避してみた。 ---.htaccess--- php_value mbstring.internal_encoding UTF-8 //WordPressME2.2はUTF-8で動いているので、内部エンコードをUTF-8にする。WordPressのwp-config.phpで「mb_internal_encoding('UTF-8');」されているがどうせならまとめとく。 php_value mbstring.http_input UTF-8 // 「auto」は、「ASCII,JIS,UTF-8,EUC-JP,SJIS」に展開されるはずだがなぜかどのinputもASCIIとして認識してしまう。 //これが問題なので、決めうちでUTF-8に設定する。 //mbstring.http_inputはマニュアルで「PHP_INI_ALL」と書いてあるが、「スクリプトではhttp_inputの設定は変更できません。」とも書いてある。 //実際、mb_http_input()は設定をする機能は無いので、.htaccessかphp.iniで設定するほか無い。 php_value mbstring.http_output UTF-8 //当然出力はUTF-8 ---.htaccess--- その他php.iniでは以下が設定されている。 mbstring.encoding_translationとmbstring.http_inputの関わりがよく分からない。 mbstring.encoding_translationが曲者なのかもしれない。 ---php.ini--- mbstring.encoding_translation On mbstring.language Japanese ---php.ini--- 参考 PHP: マルチバイト文字列関数 (mbstring) - Manual ○HTMLを含む投稿をするとどうも変な動きをする WordPressのコントロールパネルはかなりきれいにまとまっていて、完成度の高さの表れだと思う。 しかし、投稿機能の動きがどうもおかしい。 WordPressには2種類の投稿エディタが用意されている。 いわゆるワードプロセッサの様に、太字などの簡単な装飾をHTMLやCSSを書くことなく指定できるビジュアルエディタと、 そういった機能の無い単なる入力フォームのコードエディタだ。 ビジュアルエディタも内部的には装飾用のタグかCSSを挿入しているはずだが、これがユーザが記述したHTMLやCSSをおかしくしてしまう。 コードエディタを使ってHTMLタグを含んだ投稿を書いている時、ビジュアルエディタに切り替えるとそこでコードを書き換えられてしまう。 また、投稿画面を開いたときデフォルトはビジュアルエディタの方で表示するため、既存のエントリを編集する場合それがHTMLタグを含んだエントリだったとしても、最初はビジュアルエディタで開いてしまう。 ビジュアルエディタからコードエディタに切り替えた時にコードをおかしくする前の内容で表示してくれればいいが、どうもそうはなっていない様子。 回避策としては、ビジュアルエディタはWordPressのユーザ単位で使用しない設定が可能。 また、ビジュアルエディタ・コードエディタの両方とも、エディタ上の改行をbrタグに置き換え、空白行があればpタグを挿入するようになっている。 便利といえば便利だが、これもHTMLやCSSを書きたい場合トラブルになる。 tableタグやobjectタグなどネストすること前提のタグの場合当然改行を含めて記述するが、この改行がbrに置き換わってしまいおかしくなってしまう。 WordPressのソースコードをざっと見ると、どうやら改行前後がHTMLタグの場合は置き換えないようにしている気もするが、これが不完なのかも知れない。 回避策としては、WordPressのソースコードを一部書き換え、brタグpタグの挿入機能をコメントアウトした。 書き換えるファイルは「wp-includes/default-filters.php」 修正前: add_filter('the_content', 'wpautop'); add_filter('the_excerpt', 'wpautop'); 修正後: //add_filter('the_content', 'wpautop'); //add_filter('the_excerpt', 'wpautop'); ○WordPressの出力するFeedはGoogleウェブマスターツールにてサイトマップとして登録できない。 Google ウェブマスター ツール - ウェブマスター ツール ちゃんとしたsitemap.xmlを用意するのがめんどうだったのでとりあえず、RSSなどのFeedを登録しようとしたが拒否されてしまった。 これはFeedに記述されるサイトのURLが問題の様子。 例えば以下のURLでWordPressを運用しているとする。 http://example.com/wordpress/ その場合Feedに記述されるURLは以下のようになる。 http://example.com/wordpress 違いは最後の「/」が抜けている点。 これはRSS2.0の場合だが、AtomなどそのほかのFeedでも同様に最後の「/」が抜けている。 Googleウェブマスターツールでは、同じドメイン下でも階層が違えば別途認証を必要とする。 どうやらhttp://example.com/wordpress/のFeedではなく、http://example.com/のFeedだと認識し受け付けないようだ。 これはhttp://example.com/wordpress/とhttp://example.com/の両方を同じGoogleアカウントのGoogleウェブマスターツールで管理していても、拒否してくる。 WordPressのコントロールパネルでの設定で最後の「/」を入力してみたが、POSTすると最後の「/」は消されていた。 WordPress内では最後の「/」を付けずに運用されているようだ。 回避策としてはサイトマップ生成用のプラグインを導入する。 Google Sitemap Generator for WordPress v2 Final インストールは簡単で日本語を含め多くの言語に対応している。 コントロールパネル内の設定画面も日本語で表示できるようになっているが、WordPressME2.2では多少修正が必要。 言語ファイルとしてsitemap-ja_JP.UTF-8.moとsitemap-ja_JP.UTF-8.poが用意されているが、WordPressME2.2ではwp-config.phpで「define ('WPLANG', 'ja');」と設定されている。 ファイル名を以下のように変更することで、コントロールパネル内で日本語にて表示されるようになる。 修正前: sitemap-ja_JP.UTF-8.mo sitemap-ja_JP.UTF-8.po 修正後: sitemap-ja.mo sitemap-ja.po |
||
|
|
||
200707051540 |
||
|
||||||||||||||||||||||
|
|
|
|||||||||||||||||||||
COMMENT |
||||||||||||||||||||||
| 管理者だけに閲覧 | ||
|
||||||||||||
|
|
|
|||||||||||
TRACKBACK |
||||||||||||
|
| プログラマのチラシの裏 |
|

