稼働している WordPress サイトのお引っ越しって、何度も記事を移さないといけない場面が出てきがちです。
そのたびにデータベースまるごと入れ替えるのって面倒くさい!
そこで私は WordPress Importer を愛用しています。
エクスポートするときに、日付や、公開ステータスで絞り込みした XML を出せるので、便利。
最新バージョンでバグが有る
ところが、引越し先で最新の WordPress と WordPress Importer プラグインを使っているにもかかわらず、以下のようなエラーが消えませんでした。
Strict Standards: Redefining already defined constructor for class WXR_Parser_Regex in xxxxx\wp-content\plugins\wordpress-importer\parsers.php on line 408
Strict Standards: Declaration of WP_Import::bump_request_timeout() should be compatible with WP_Importer::bump_request_timeout($val) in xxxxx\wp-content\plugins\wordpress-importer\wordpress-importer.php on line 38
Trunk からダウンロードすればOK
調べてみたら、Trac にチケットがありました。
余談ですけど報告者の Kim さんって、 Docs チームのメンバーで昨年12月に亡くなった方だ。
これによると、リリースされてないけど /trunk
のほうにあるプラグインは修正されているので、管理画面からインストールせずに http://downloads.wordpress.org/plugin/wordpress-importer.zip から直接ダウンロードすればいいとのこと。
もし「ディスクへのファイルの書き込みに失敗しました。」とメッセージが出たら
ネット上には、「パーミッションが間違ってないか確認しましょう」、とか、「php.ini の upload_max を上げましょう」、とか、そういうつまづきに対する助け舟はたくさんあるのですが、それでも解決しない方へ。一時ファイルの保存場所を疑いましょう。
普通のレンタルサーバーでは大丈夫そうですが、今回引き継いだサーバーでは /tmp
ディレクトリに書き込み権限がないようでした。
今回は php.ini の設定ができるサーバーだったので、php.ini から /tmp
ディレクトリの場所を指定し、 /tmp
ディレクトリをブラウザから書き込み可能な権限にしてあげたら動きました。
(php.ini は、レンタルサーバーだと、専用の管理画面から書き換えが必要な場合が多いと思います。)
upload_tmp_dir = /(ルートの場所)/wp-content/tmp
/tmp
自体のパーミッションが変えられるなら、変えてもいいと思うんですけど、どっちのほうがサーバーてきに素敵なんだろう?知ってるひといたら教えて下さい。
ところで、通常は wp-config.php に以下を追加して、/tmp
の場所が変更できますが、これだとプラグインのアップロードとか、そういうときは大丈夫なんですが、 WordPress Importer プラグインには反映されないみたいです。
define ('WP_TEMP_DIR', 'DIRECTORY PLACE FROM ROOT');
反映されたほうがいいような気がするのでチケットをたててみました。
どうだろうかしら。
#31976 (WordPress Importer ignore WP_TEMP_DIR in wp-config) – WordPress Trac