Skip to content

Instantly share code, notes, and snippets.

@Programmer095
Forked from m-thomson/import-image-fix.md
Created February 20, 2018 23:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Programmer095/a82680226ca9d76da82caee93d24eda1 to your computer and use it in GitHub Desktop.
Save Programmer095/a82680226ca9d76da82caee93d24eda1 to your computer and use it in GitHub Desktop.
WP All Import duplicate image problem

When an image is imported, the name used in the media library is derived from the URL "basename". This can cause problems, especially when using the option "Search through the Media Library for existing images before importing new images". For example, even though they are different images, these URLs all have the same "basename" (in bold). They will generate the same file my-image.jpg in the WordPress library:

http:// example.com/ my-image.jpg
http:// example.com/ my-image?id=1
http:// example.com/subfolder/ my-image.jpg

The solution is to put this PHP code in your function editor:

function fix_img_url($url){
 return empty($url) ? "" : $url."#/".substr(md5($url),0,8).".jpg";
}

And put the following in your image field, substituting the correct field name for {image[1]}:

[fix_img_url({image[1]})]

This forces WP All Import to generate an image name derived from the entire URL instead of just the basename.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment