问题描述
在使用媒体上传屏幕上传 WordPress 中的附件后,是否有可以在上传图像之后运行的挂钩或过滤器,以便我可以获取上传图像的路径,以便我可以分析?
我正在构建一个插件,将在上传图像后分析图像,然后使用图像中找到的平均颜色标记图像。唯一的问题是我不知道我可以使用哪个 hook,它将在图像上传后立即开始,然后以一种方式获得新上传的文件的路径。
任何帮助将非常感激。
最佳解决方案
原来我在同事的帮助下解决了自己的问题。在媒体被上传或媒体被编辑之后被调用的两个过滤器是; ‘add_attachment’ 和’edit_attachment’ 。这是我使用的代码,然后检查附件是否是一个图像 (代码从示例中省略) 。
function analyse_attachment($attachment_ID)
{
$attachment = get_attached_file($attachment_ID); // Gets path to attachment
update_post_meta($attachment_ID, "image_rgb", $the_colour);
}
add_action("add_attachment", 'analyse_attachment');
add_action("edit_attachment", 'analyse_attachment');
显然我省略了一些与这个问题无关的东西。但是,在您上传或编辑附件之后,该代码才会被调用。
次佳解决方案
你有两个可以使用的过滤器:attachment_fields_to_save
它得到两个参数 ($ post,$ attachment) 所以:
add_filter('attachment_fields_to_save',your_image_analyse_function);
function your_image_analyse_function($post, $attachment){
$attachment['url']
//do your stuff
}
和 media_send_to_editor
,它获得 3 个参数 ($ html,$ send_id,$ attachment),并在您点击发送到编辑器后再次触发,可以使用 $附件。
add_filter('media_send_to_editor',your_image_analyse_function);
function your_image_analyse_function($html, $send_id, $attachment){
$attachment['url']
//do your stuff
}
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。