WordPress中的`prepend_attachment`是一个用于在媒体文件上传完成后执行的钩子。
`prepend_attachment`钩子函数接受一个参数,即媒体文件的ID。我们可以利用这个参数来获取媒体文件的URL、属性等信息,并在上传完成后执行自定义的操作。
以下是一个使用`prepend_attachment`钩子的示例代码:
function custom_action_on_attachment_upload($attachment_id) {
// 获取媒体文件的URL
$url = wp_get_attachment_url($attachment_id);
// 获取媒体文件的属性
$metadata = wp_get_attachment_metadata($attachment_id);
// 执行自定义操作,比如生成缩略图、添加水印等
// ...
// 输出调试信息
error_log('Attachment uploaded: ' . $url);
}
add_action('prepend_attachment', 'custom_action_on_attachment_upload');
在上面的示例中,`prepend_attachment`钩子触发后,会调用名为`custom_action_on_attachment_upload`的函数。函数中首先通过`wp_get_attachment_url`和`wp_get_attachment_metadata`函数获取媒体文件的URL和属性。然后可以根据需求执行一些自定义的操作,比如生成缩略图、添加水印等。最后,通过`error_log`函数输出调试信息。
要使用`prepend_attachment`钩子,只需将以上代码添加到主题的`functions.php`文件中即可。在媒体文件上传完成后,就会执行`custom_action_on_attachment_upload`函数。
需要注意的是,`prepend_attachment`钩子只在媒体文件上传完成后触发一次,而不会在每次访问媒体文件时触发。如果需要在每次媒体文件被访问时执行自定义操作,可以考虑使用`template_redirect`钩子。


0 个评论