If demo images are imported but appear broken in Media, or if even manually uploaded images do not display correctly, the issue is usually not related to the theme. In most cases, WordPress is using a custom upload path with incorrect server permissions.
This can prevent images from being processed correctly, even though they appear as uploaded in wp-admin.
How to check the Media upload path
Go to:
Settings → Media
or open directly:
/wp-admin/options-media.php
Check if there is a value added in the field for the upload path.
If a custom upload path is set there, and that folder has incorrect permissions or does not exist properly on the server, WordPress may upload images in a broken way.
What to do
Remove the custom upload path and let WordPress use the default uploads folder.
WordPress should normally upload files to:
/wp-content/uploads/
After removing the custom path:
Save the Media settings.
Test by uploading one image manually in Media → Add New.
Confirm the image displays correctly in Media Library.
Delete broken demo images if needed.
Re-import the demo.
What we found in this case
In this setup, the site had a custom media upload path set in WordPress. That path had incorrect permissions, which caused uploaded images to appear broken.
After removing the custom path from:
/wp-admin/options-media.php
WordPress started using the standard uploads folder again, and image uploads worked correctly.
We then:
deleted the broken images from Media
re-imported the demo
confirmed that all images were loading correctly
Important
If images are broken even when uploaded manually through standard WordPress Media, this is usually a WordPress/server configuration issue, not a theme issue.
If removing the custom upload path does not fix the issue, ask your hosting provider to check:
folder permissions for /wp-content/uploads/
PHP memory limit
disk space / inode limits
image processing libraries such as GD Library or ImageMagick
Conclusion
If demo images are broken after import, always check the Media upload path first. A wrong custom path can break all image uploads, including manual uploads, and make the demo appear incomplete.