我安装了一个插件来导入XML内容,但它无法更改将要保存的新图像的某些元数据。
例如,我想在保存图像之前拦截保存图像的操作,并更改许多元,如标题、Alt文本、描述等。
更具体地说,我想:
在创建图像之前截取Wordpress操作获取当前图像数据(标题、alt、描述等)更改这些数据返回要保存的更新数据如何操作?
我已经在当前主题中测试了以下代码function.php
:
function my_sanitize_content($data, $postarr) {
print_r ($data);
print_r ($postarr);
return $data;
}
add_filter( \'wp_insert_attachment_data\' , \'my_sanitize_content\');
但在运行插件时,似乎
wp_insert_attachment_data
未执行,因为
it shows nothing.
如果我使用此选项:
function my_sanitize_content( $content ) {
print_r ($content);
return $content;
}
add_filter( \'wp_insert_post\' , \'my_sanitize_content\');
。。。这个
print_r
shows only the current post_id
.
SO网友:Antti Koskinen
如果您使用的导入功能使用wp_insert_post()
(也由wp\\u insert\\u attachment()使用)将新图像(附件帖子)添加到您的站点,然后您可以使用wp_insert_attachment_data( array $data, array $postarr )
过滤器,在内部定义wp_insert_post()
.
根据文档it,
在数据库中更新或添加附件发布数据之前,对其进行筛选。
参数,
array $data An array of sanitized attachment post data.
array $postarr An array of unsanitized attachment post data.
如果你看看
wp_insert_post()
文档,您可以查看
wp_insert_attachment_data
参数
$data
和
$postarr
,
https://developer.wordpress.org/reference/functions/wp_insert_post/对于附件,如果我没记错的话,
标题=post\\u titlealt=\'wp\\u attachment\\u image\\u alt\'post\\u meta标题=post\\u摘录描述=post\\u内容