I have a custom template designed for a current Wordpress project but do not quite have enough experience to create a front-end posting system, which is needed to complete the site functionality.
Here are the major requirements:
Create a form to add posts to the site from the front end. There are 5 different types of content the user can post (image, video, audio, writing, and link). These are represented by custom post types that I have created already. Each custom post type will display as a different layout.
Considering each post type will have different fields associated with each one, I would like the form to be dynamic so that the options will change depending on which post type is being used. For instance, on the "image" post type, there is no need for a content box and will instead use a box labeled "caption". Similarly, each post type would need small variants of custom fields based on the type. I can give these specific fields in detail to whoever takes the job.
The user should be able to select categories (but not tags) and should be able to upload a featured image, as supported by Wordpress.
I would also like the user to be able to both preview their post and save their post as a draft to edit or publish later.
For the form itself, I'm looking for ajax validation as well as a php fallback option. I also want to ensure that the form is secure and only accepts certain types of content from logged-in users only.
Finally, I need a dashboard page where users can view their current posts (and ONLY their current posts, not anyone else's) and edit each one as well as send each one to the trash bin if needed.
What I DON'T need:
Styling: I am proficient in CSS so I don't need any of this styled or designed. I simply need the outputs to be correct and complete and then I can structure and style the actual pages and content myself.
I am looking to get this finished very quickly (within a week if possible). From what I've researched, this isn't too difficult in concept if you're really familiar with the Wordpress codex.