WordPress 3.5 で消えたメディア設定のアップロードディレクトリの設定

WordPress 3.5 からそれまであったはずのメディア設定の「アップロードするファイルの保存場所」「ファイルへの完全な URL パス」がなくなった。なぜなくなったのかはよく分からないが、この消えたアップロードディレクトリの設定を追いかけてみた。

まず、WordPress 3.5 からはアップロードディレクトリの設定は、wp-config.php の定数で指定するようになった。アップロードディレクトリはデフォルトでは「wp-content/uploads」だが、変更したい場合は、wp-config.php に以下を追加する。

define( 'UPLOADS', 'files' ); 

上記だと、files ディレクトリにアップロードすることになる。

それでは、WordPress 3.5 以前の設定はどうなるか、というと、設定はそのまま有効である。管理メニューのメディアから設定が消えたわけだが、確認する方法はある。

wp-admin/options.php

をURLに入力することで、WordPress の設定を一覧で確認できる。ここで、upload_path に値が入っていれば設定が有効である。

それでは、定数の UPLOADS と 設定の upload_path はどちらが優先されるのだろうか。答えは、定数の UPLOADS で upload_path は無視されるようである。

ちなみに get_option() という WordPress の設定を呼び出す WordPress の関数があるわけだが、上記の仕様変更により、以下を使用するのはまずい。

get_option('upload_path');

どうするかというと、wp_upload_dir() という関数を使用するのがよさそうだ。wp_upload_dir() は、戻り値が配列で返ってくる。

$uploads = wp_upload_dir();
echo $uploads['path'];

wp_upload_dir() については、CODEX のFunction Reference/wp upload dirを見るとよいだろう。

«
»