Используйте стандартные функции Wordpress для загрузки файлов. Тогда на каждый файл будет создаваться вложение, которое уже зарегистрировано в системе, тут же можно и пост создать, и вложение ему присвоить.
Работает с массивом $_FILES, подходит в вашем случае.
media_handle_upload
Более кастомизируемая функция, если вдруг нужно больше гибкости.
media_handle_sideload
P.S Вложения в wordpress — это тоже посты, только с post_type=attachment
А их уже можно вывести стандартным WP_Query в любых вариациях и с любыми фильтрами