The load_image_to_edit_attachmenturl WordPress PHP Filter allows you to modify the path to an attachment’s URL when editing the image.
Usage
add_filter('load_image_to_edit_attachmenturl', 'your_custom_function', 10, 3); function your_custom_function($image_url, $attachment_id, $size) { // your custom code here return $image_url; }
Parameters
$image_url
(string|false): Current image URL.$attachment_id
(int): Attachment ID.$size
(string|int[]): Requested image size. Can be any registered image size name, or an array of width and height values in pixels (in that order).
More information
See WordPress Developer Resources: load_image_to_edit_attachmenturl
Examples
Change Image URL to Use CDN
If you want to use a CDN for your images, you can modify the image URL when editing the image.
add_filter('load_image_to_edit_attachmenturl', 'change_image_url_to_cdn', 10, 3); function change_image_url_to_cdn($image_url, $attachment_id, $size) { // Replace 'yourdomain.com' with your actual domain // Replace 'cdn.yourdomain.com' with your actual CDN domain $image_url = str_replace('https://yourdomain.com', 'https://cdn.yourdomain.com', $image_url); return $image_url; }
Append Timestamp to Image URL
If you want to force a browser cache refresh, you can append the timestamp to the image URL.
add_filter('load_image_to_edit_attachmenturl', 'append_timestamp_to_image_url', 10, 3); function append_timestamp_to_image_url($image_url, $attachment_id, $size) { $timestamp = time(); $image_url = $image_url . "?t=" . $timestamp; return $image_url; }
Use Placeholder Image for Missing Images
If the image is missing, you can use a placeholder image instead.
add_filter('load_image_to_edit_attachmenturl', 'use_placeholder_for_missing_images', 10, 3); function use_placeholder_for_missing_images($image_url, $attachment_id, $size) { if ($image_url === false) { $image_url = 'https://yourdomain.com/path/to/placeholder-image.jpg'; } return $image_url; }
Change Image URL for a Specific Size
If you want to change the image URL for a specific size, you can do so with this example.
add_filter('load_image_to_edit_attachmenturl', 'change_image_url_for_specific_size', 10, 3); function change_image_url_for_specific_size($image_url, $attachment_id, $size) { if ($size == 'thumbnail') { // Custom code to generate new image URL for the thumbnail size $image_url = 'https://yourdomain.com/path/to/new-image-url.jpg'; } return $image_url; }
Change Image URL Based on Attachment ID
If you want to change the image URL for a specific attachment ID, you can do so with this example.
add_filter('load_image_to_edit_attachmenturl', 'change_image_url_for_specific_attachment', 10, 3); function change_image_url_for_specific_attachment($image_url, $attachment_id, $size) { if ($attachment_id == 123) { // Custom code to generate new image URL for attachment ID 123 $image_url = 'https://yourdomain.com/path/to/new-image-url.jpg'; } return $image_url; }