2017-04-26 98 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

相關問題