質問: フロントエンドからメディアにアップロードする仕組みを作りたいのですが、その中で分からないことがありますので教えてください。 具体的には function.phpに記載の $_FILES["imagefile"]["tmp_name"] にアクセスできません。 No such file or directory になります。 よってアップロードして一時ファイルにアクセスができないのでコピーもサイズ変更などもできず・・・。 wordpressに詳しい方、よろしくお願いいたします。 ちなみにwordpressの外に設置した場合では $_FILES["imagefile"]["tmp_name"] も正常に動きます。
回答: こんにちは! function.phpでtmp_nameが見つからないのは原因がわかりませんが 最近、画像アップロードのコードを書いたので、どのようにしていたか コードを確認してみたらこんな感じでした。 ``` $file_uri = isset( $data['image_uri'] ) ? $data['image_uri'] : ''; $img_title = isset( $data['image_title']) ? $data['image_title'] : ''; $filename = basename($file_uri); $wp_upload_dir = wp_upload_dir(); require_once(ABSPATH . 'wp-admin/includes/file.php'); if ( WP_Filesystem() ) { global $wp_filesystem; $img_data = $wp_filesystem->get_contents( $file_uri ); } // この下2行はファイル名に日付を付けているだけなので要らないかも? $date_filename = date("Ymd") . '_' . $filename; // add date $filename = wp_unique_filename( $wp_upload_dir['path'], $date_filename); if ( WP_Filesystem() ) { global $wp_filesystem; $wp_filesystem->put_contents( $wp_upload_dir['path'] . '/' . $filename, $img_data); } ```