添付ファイルのタイトルと説明のメタデータをwp_ajax
で更新すると、以前のすべてのデータと添付ファイルの構造が壊れます。私のphpコード:
add_action( 'wp_ajax_update_attachment', 'update_attachment_callback' );
function update_attachment_callback() {
$id = isset($_POST['id']) ? $_POST['id'] : FALSE;
$title = isset($_POST['title']) ? $_POST['title'] : 'TITLE';
$description = isset($_POST['description']) ? $_POST['description'] : 'Description';
if($id){
wp_update_attachment_metadata($id, array(
'title' => $title,
'description' => $description
));
}
echo 'ok';
wp_die();
}
そしてペイロード:JSで
data = {
'action': 'update_attachment',
'title' : title,
'id': id,
'description': description
};
すべて問題ありませんが、アタッチメントデータを更新すると、width
、height
、sizes.thumbnail
などの添付データが大量に失われます。
私はこれらのデータのどれも変更していないので、私はこのデータが失っている理由はわかりません、私は付属のtitle
とdescription
を更新するだけです。
これは添付ファイルの更新前(js consoleから)です。
更新直後の同じ添付ファイル。
title
およびdescription
を更新したい場合は、wp_update_attachment_metadata
添付ファイルのタイトルを使用しないでください。descriptionはメタではありません。メインの投稿の詳細です(添付ファイルはカスタム投稿です)。次のコードでこれを実行できます。
$attachment = array(
'ID' => $id,
'post_title' => $title,
'post_content' => $description
);
// now update main post body
wp_update_post( $attachment );