私はフロントエンドフォームを使用してユーザーが新しい投稿を追加できるサイトを持っています。フォームには、基本的な投稿の詳細と画像フィールドがあります。このフォームにはさらにいくつかのイメージフィールドがあり、acfによって制御されます。フロントエンドからのWordpress画像のアップロードで500内部サーバエラーが発生しました
ここで問題は、pngのような画像をすべてうまく使うときです。しかし、私はjpgのようなイメージを使用すると、それは内部サーバーエラーを提供します。私は受け入れたファイル形式を "jpg、png、jpeg"として追加しました。しかし、私はどのように機能イメージのファイル形式を追加するか分からない。
ここに私が使用しているコードがあります。ここでは、最初の画像は常に特色の画像になります。
foreach($_FILES as $file) {
if(is_array($file)) {
if($count==1){
$featured_image_id = upload_user_file($file);
}else{
$item_image[] = upload_user_file($file);
}
}
$count++;
}
そしてここupload_user_file機能は、私はそれを解決し[OK]を
function upload_user_file($file = array()) {
require_once(ABSPATH . 'wp-admin/includes/admin.php');
$file_return = wp_handle_upload($file, array('test_form' => false));
if(isset($file_return['error']) || isset($file_return['upload_error_handler'])) {
return false;
} else {
$filename = $file_return['file'];
$attachment = array(
'post_mime_type' => $file_return['type'],
'post_title' => preg_replace('/\.[^.]+$/', '', basename($filename)),
'post_content' => '',
'post_status' => 'inherit',
'guid' => $file_return['url']
);
$attachment_id = wp_insert_attachment($attachment, $file_return['url']);
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attachment_data = wp_generate_attachment_metadata($attachment_id, $filename);
wp_update_attachment_metadata($attachment_id, $attachment_data);
if(0 < intval($attachment_id)) {
return $attachment_id;
}
}
return false;
}
ねえ、これについて詳しく説明できますか?私はあなたとまったく同じ問題を経験していると確信しています。 – Jacksonkr
イメージフィールド内に「ファイルタイプを許可」というオプションがあります。これは、ドキュメントに「特定のファイルタイプのアップロード検証を追加する」と書かれています。すべてのタイプに対して許可するファイルタイプを指定するにはカンマ区切りリストを入力します。したがって、空のままにすると、すべてのファイルタイプが許可されます。ごくまれにwordpress htaccessファイルが更新されないので、設定> Permalinksに行き、saveをクリックしてみてください。 htaccessファイルが更新されます。 –