wp_update_attachment_metadata() 函数的 $data 参数中应该包含什么类型的数据?

rit*_*ten 5 wordpress function

我需要更新复制并粘贴到新本地化的图像的 wppostmeta 表中的“_wp_attachment_metadata”。

由于 WP 文档对我来说不清楚,我想问我应该在 $data 参数中输入什么?

wp_update_attachment_metadata( $post_id, $data );
Run Code Online (Sandbox Code Playgroud)

$post_id 非常清楚,我可以从数据库中获取它。$data 呢?

https://codex.wordpress.org/Function_Reference/wp_update_attachment_metadata


编辑

我已经尝试过这个(98是post_id/附件页面id)

$data = wp_get_attachment_metadata( 98 ); 
wp_update_attachment_metadata( $post_id, $data );
Run Code Online (Sandbox Code Playgroud)

但它不起作用我也尝试过类似的方法:

`while ($row = $post_id->fetch_assoc() and $media = $meta_value->fetch_assoc() ) { 
$row_id = $row['post_id']; 
$media_name = $media['meta_value']; 

update_post_meta( $row_id , '_wp_attachment_metadata' , $media_name );  
}`
Run Code Online (Sandbox Code Playgroud)

它可以工作,我可以看到图像/缩略图,但是当我尝试编辑图像时,它显示“文件中没有图像数据。请再次将图像发送到服务器。”

vla*_*its 4

从文档来看,它是该图像的(序列化)元数据。基本上它是一个描述图像的更大的关联数组。当您使用该方法时,您必须提供所有数据值(而不仅仅是您知道要更改的数据值)。

更改它可能看起来像这样:

$data = wp_get_attachment_metadata( $attachment_id); // get the data structured
$data['width'] = 680;  // change the values you need to change
wp_update_attachment_metadata( $attachment_id, $data );  // save it back to the db
Run Code Online (Sandbox Code Playgroud)

您可以在 wp_update_attachment_metadata 的文档中查看关联数组的样子