Using WordPress ‘image_sideload_extensions’ PHP filter

The image_sideload_extensions WordPress PHP Filter allows you to modify the list of allowed file extensions when sideloading an image from a URL.

Usage

add_filter('image_sideload_extensions', 'my_custom_image_sideload_extensions', 10, 2);

function my_custom_image_sideload_extensions($allowed_extensions, $file) {
    // your custom code here
    return $allowed_extensions;
}

Parameters

  • $allowed_extensions (string[]): Array of allowed file extensions.
  • $file (string): The URL of the image to download.

More information

See WordPress Developer Resources: image_sideload_extensions

Examples

Add BMP file extension

Allow BMP file extension when sideloading images.

add_filter('image_sideload_extensions', 'allow_bmp_extension', 10, 2);

function allow_bmp_extension($allowed_extensions, $file) {
    $allowed_extensions[] = 'bmp';
    return $allowed_extensions;
}

Add SVG file extension

Allow SVG file extension when sideloading images.

add_filter('image_sideload_extensions', 'allow_svg_extension', 10, 2);

function allow_svg_extension($allowed_extensions, $file) {
    $allowed_extensions[] = 'svg';
    return $allowed_extensions;
}

Remove WebP file extension

Disallow WebP file extension when sideloading images.

add_filter('image_sideload_extensions', 'remove_webp_extension', 10, 2);

function remove_webp_extension($allowed_extensions, $file) {
    $key = array_search('webp', $allowed_extensions);
    if ($key !== false) {
        unset($allowed_extensions[$key]);
    }
    return $allowed_extensions;
}

Change allowed file extensions

Only allow PNG and GIF file extensions when sideloading images.

add_filter('image_sideload_extensions', 'change_allowed_extensions', 10, 2);

function change_allowed_extensions($allowed_extensions, $file) {
    $allowed_extensions = ['png', 'gif'];
    return $allowed_extensions;
}

Log allowed file extensions

Log the allowed file extensions when sideloading images.

add_filter('image_sideload_extensions', 'log_allowed_extensions', 10, 2);

function log_allowed_extensions($allowed_extensions, $file) {
    error_log('Allowed extensions: ' . implode(', ', $allowed_extensions));
    return $allowed_extensions;
}