如何在保存图像之前更改图像属性?

时间:2019-09-11 作者:Rogério Dec

我安装了一个插件来导入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.

1 个回复
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内容

相关推荐

Wodpress XML Import hooks

要将来自给定远程站点的帖子合并到给定类别下的一个站点中,我如何挂接导入插件以保存给定类别的帖子:给出的示例:接收方站点具有类别auto 我想从(例如)导入所有帖子auto.com 在下面this category. 如果远程帖子有另一个类别auto 添加为子级。应该下载内部帖子图片,更新帖子内的所有链接,因此我已经找到了一个核心方法,下面是我尝试的方法,但我认为这可以变得更简单<?php if (!class_exists(\'Wp_Http\')) in