my Media -->Library content disappeared from the dashboard, but I still can see it inside my actual site folder.
Could anyone instruct me how to fix it?
I am not so sure as to the exact reason of your problem, but after the comments, and considering a normal "user" level of coding expertise, I post this answer describing not the ultimate solution, but the steps that I myself would have considered when facing a similar problem. There might be better approaches and I would love to hear them, but like I said, I am posting this as an option to a normal user without coding or debugging capabilities.
Strangely enough , yesterday , while commenting to you , a similar thing happened to me on localhost . After a short investigation, I found out that one of my DB tables (wp_posts) was damaged (first time in 6 years of WP´ing ) .
The symptoms were :
AS the symptoms might differ from yours , and so does the recovery , It still
leads me to think that you have some damaged DB table ..
So, in order to fix this , you can do one of three things :
1 - Reinstall your website completely including DB
That depends on how much content you have on the website and on how much time you want to invest in total recovery.
you will essentially need to Copy and paste , upload all images , create new categories and posts . No import is suggested since we are talking about DAMAGED tables where the information relations themselves are damaged .
2 - Trying to RESTORE the damaged table .
GO into your PhpMyadmin, and goto YourDB-->structure
then flag your tables (maybe one by one ) and choose
3 - Try to handle the visible symptom of lost attachments only while ignoring other possible yet-to-be-discovered problems :
While it would be the less recommended for me , it might be the first try for someone with a lot of content and little time .
In that case, I believe your easiest option would be to try to reload all the images . But there is a catch.
If you will upload them AGAIN to the same uploads folder wordpress will try to avoid conflict naming and will rename them with sequential numbers ( eg.
image.jpg will be uploaded like
image1.jpg etc ...) which will cause them not to be recognized as the original inserted images ..
So you need to BACKUP you uploads folder to another location, and then DELETE all the images from the wp-content/uploads folder . At this point , you need to UPLOAD them again from the backup folder , and attach. (thus maintaining the same names )
You could :
Note that in order to maintain the same names , you will have to upload only the ORIGINAL sizes and not the custom sizes (meaning
image.jpg and not
Making a long story short , There is no easy solution as far as I can see for such a problem , but to prevent it in the future ,
regularly backup of your DB is always a good advice.
WILD GUESS EDIT Also , in the comments you said that you have deleted a user and then "restored" posts from the DB . This can be also the root of the problem, although hard to confirm.
In this case what you will need to do is something like this :
UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID;
But next time, when you delete a user, make sure that you assign all the posts to another user before deleting it .
OK so you dropped the
wp_posts table data and then restored the posts from trash. It must work if Wordpress did not stored the media library entries in
wp_posts table. The problem is all the entries had removed, there is no record pointing to the uploaded image so Wordpress does not recognize it!
You can see it yourself, open phpMyAdmin or any other MySQLClient and browse the
wp_posts table, then observe post_type column, there must be some record with type
'attachment', and yes, these are those media you uploaded recently. Older entries with type
'attachment' are not exist anymore, as you deleted them. If you have a back up or something you probably can restore those only attachment data by selecting and exporting them. Maybe this can help you :