WordPress には、WordPress イメージ ギャラリーへのファイルのアップロードを処理する機能があります。フォームを Ajax に変換した後、ファイルのアップロードが機能しなくなっていることに気付きました。問題は、Ajax の前に関数を実行することができれば、機能するということです。コードは次のとおりです。
function insert_attachment($file_handler,$post_id,$setthumb='false') {
if ($_FILES[$file_handler]['error'] !== UPLOAD_ERR_OK){
return __return_false();
}
require_once(ABSPATH . "wp-admin" . '/includes/image.php');
require_once(ABSPATH . "wp-admin" . '/includes/file.php');
require_once(ABSPATH . "wp-admin" . '/includes/media.php');
$attach_id = media_handle_upload( $file_handler, $post_id );
if ($setthumb)
update_post_meta($post_id,'_thumbnail_id',$attach_id);
return $attach_id;
}
そして、Ajax 送信が呼び出される前に実行したい呼び出しは次のとおりです。
foreach ($_FILES as $file => $array)
{
$newupload = insert_attachment($file,$post_id);
}
その理由は$newupload
、ファイルを wordpress 画像ギャラリーに送信しattachmentID
、Ajax が挿入されているのと同じテーブルに挿入するために を返すためです。したがって、コードが Ajax の前に実行できれば、問題なく動作します。これはまったく可能ですか?
クリック時にバックグラウンドでPHP関数を実行するには?