wp_handle_upload()は私のために働きます、しかしそれが望むところにファイルをアップロードします(uploads/year/month)。
質問:ファイルをカスタムディレクトリにアップロードするように指示する方法(uploads/mycustomdir)はありますか。またはこれを行うことができるいくつかの他の機能はありますか?
私が試したこと:
phpのmove_uploaded_file()(ターゲットディレクトリのパラメータを把握できませんでした - これはプラグイン用です。私はそれが彼らのdir構造に関係なく全員のために働くために必要です).
このコードをプラグインのコアファイルに貼り付けました。何も起こらなかった。しかし、私はコメントでこれが人々のために働くように思えます。
答えがある場合は、完全な答えを記入してください。 $ _FILES ['myfile']を取得できます。そのファイルをuploads/mycustomfolderに移動させるためにそこから実行する手順は何ですか?
Joostが提供したアイデアに取り組み、upload_dir
フィルタを使用してアップロードパスを別の場所に一時的に設定することができます。
/**
* Override the default upload path.
*
* @param array $dir
* @return array
*/
function wpse_141088_upload_dir( $dir ) {
return array(
'path' => $dir['basedir'] . '/mycustomdir',
'url' => $dir['baseurl'] . '/mycustomdir',
'subdir' => '/mycustomdir',
) + $dir;
}
そして実際には、次のように簡単です。
// Register our path override.
add_filter( 'upload_dir', 'wpse_141088_upload_dir' );
// Do our thing. WordPress will move the file to 'uploads/mycustomdir'.
$result = wp_handle_upload( $_FILE['myfile'] );
// Set everything back to normal.
remove_filter( 'upload_dir', 'wpse_141088_upload_dir' );