Custom Field Templateを使った投稿画面でfileがアップできない
2012年03月24日
WordPressのトラブル。
たぶん、CORESERVERやXREAなど、セーフモードでPHPが動くレンタルサーバのみの症状です。
Custom Field Templateのファイルアップロード機能
プラグインCustom Field Templateで設定にて
[thumbnail] type = file label = サムネイル
のように、fileを指定すると、投稿画面で画像などのファイルもアップできるようになります。
非常に便利なのですが、CORESERVERで画像をアップしようとしたら、うまく動いてくれませんでした。
CORESERVERやXREAのセーフモード対策
CORESERVERをご愛用の方はご存じの通り、PHPがセーフモードで動いている関係上、アップロード系の処理がうまく動きません。
そこで、必要なファイルだけをCGIモードで動かします。
具体的には、wp-adminディレクトリの「.htaccess」ファイルに、
# 画像・ファイルアップロード <files async-upload.php> AddHandler application/x-httpd-phpcgi .php </files> # プラグイン・テーマ 新規インストール/アップグレード <Files update.php> AddHandler application/x-httpd-phpcgi .php </Files> # 本体アップグレード <Files update-core.php> AddHandler application/x-httpd-phpcgi .php </Files>
と書きます。
参考
セーフモードによる制限と対処方法 – WordPress Codex 日本語版
Custom Field Templateのセーフモード対策
これに加えて、Custom Field Templateでファイルをアップしたい時は、post.phpもCGIモードで動かす必要があります。
上記の「.htaccess」に、
<files post.php> AddHandler application/x-httpd-phpcgi .php </files>
を加えれば、投稿画面からファイルがアップロードできるはずです。