2017-04-26 100 views
1

我需要更新图像的wppostmeta表格中的“_wp_attachment_metadata”,该表格已复制&粘贴到新的本地化。

既然WP文档对我来说不是很清楚,我想问一下我应该输入什么数据到$ data参数?

wp_update_attachment_metadata($post_id, $data); 

$ post_id很清楚,我可以从数据库中取出它。美元数据呢?

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); 

,但它不工作我也试过的东西如:

`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); 
}` 

它的工作原理我可以看到图像/缩略图,但是当我尝试编辑图像时,它会显示“文件中没有图像数据。 “

回答

1

从文档中,它是该图像的(序列化)元数据,基本上它是一个描述图像的biggish关联数组,当您使用该方法时,必须提供。所有的数据值(不只是你知道你想改变的)的

改变它可能是这个样子:

$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($post_id, $data); // save it back to the db 

你可以看到关联数组的样子in the documentation for wp_update_attachment_metadata

+0

添加编辑到第一篇文章,因为我不知道如何格式化代码在这里回复这么烦人... – riten

+0

当你按照我描述的方式尝试时发生了什么?你有没有得到一个错误,或者它只是无法更新。此外,您不能在注释中格式化代码,但您可以使用'backticks'来突出显示。 – vlasits

+0

我将更好地描述我如何测试自己的方式。 1.上传了2张新图片(标准年/日期文件夹)2.为图片上传/图片/定义了新的fodler,并在那里移动了图片3.禁用了年/月隔离4.测试了ur代码并且未能更新:(如我所说我的代码while循环似乎有效,但我得到的错误我已经在我的第一篇文章中引用编辑 – riten

相关问题