Right now, the support for tagging media is pretty disappointing. You can add tags or categories to the attachment post type, but you’ll find the UI is unacceptably bad (it’s a text box where you enter terms separated by commas). There’s a plugin Media Tags that is decent though, so you might look into that.
GravityForms is nice for front-end uploading, but make sure you’re thinking through security if you have a front-end upload system.
Alternatively, you might be able to create a special role that only has access to upload and manage their own media items. You can write your own custom role or use something like Members or User Role Editor to do that.
Once you’ve setup all that, it’s just a matter of building out some nice taxonomy and attachment archive pages.
Related Posts:
- How To Create A Paginated List Of All Categories On My Site?
- Password protected posts redirects
- Overriding page template using page_template filter
- Loading page content into a variable in template
- Capturing arbitrary semantic URL arguments
- How do I display the text inside the WP editor for a page with a custom template?
- Dynamically assign same page template to child page as parent
- What content should go in index.php?
- How to show a post single post in page template
- How to pass a numeric id to a page template?
- How can I dynamically load another page template to provide an alternate layout of the posts?
- get url page template
- Posts archive index pagination in a static page custom query
- How to Set a Custom Template for Blog Posts
- is_page_template & is_page in functions.php not working
- Theme’s page.php and index.php template files are confusing me
- How can I have a static title on my blog page?
- Use is_category(), is_tag(), … in functions.php
- Why am I getting syntax error, unexpected ‘endwhile’ (T_ENDWHILE) in this template? [closed]
- How do I add a body class to specific pages?
- How to list all titles of posts on a specific page?
- How to handle a missing page.php?
- Customize edit.php Pages listing in dashboard to show only pages with a particular template applied?
- Programatically switch page template?
- remove page template from dropdown?
- Export csv and force download in template page
- WPML in custom page templates
- Why (and how?) is get_header() erasing all my stuff?
- get_pages — parent vs child_of?
- How to pass outside function to WP_REST_Request
- page.php not displaying content
- Creating a custom archive template that sorts post by date
- WP-CLI not setting page template with page_template=”template-name.php”
- Create a page template with No Footer
- Register/Get sidebar?
- How to make text show up – new page template
- using the loop with a custom table
- Verify if the current page has at least one published child
- Content pulled from page template instead of editor
- how to remove all body classes in wordpress
- Custom Post Type Archive template page not found
- Add #sidebar-2 to a custom page template
- What is wrong with my page.php?
- wp_redirect goes to infinity loop
- Single page Template for pages that begin with ‘confirmation-‘
- What content to use for inserting images
- Display one post in different formats conditionally
- Can i forget about the post loop inside the page template?
- get_avatar() as backround image
- get_the_excerpt() inside WP_Query – link URL Incorrect
- How to make Dynamic Page Template based on Post ID’s
- Template Tag Does Not Work in Page Template
- Contact template doesnt appear in page template options
- Does get_template_part() content gets parsed if it’s not executed?
- Get_template_part seems to be ignoring my template
- Function to load correct CSS for Template not working
- Change page template programmatically inside foreach
- Proper way to create custom static page
- How can I correctly redirect user to the submitted post and define a template for each new post in WordPress?
- How to display all child/sub pages from all parent pages?
- WordPress page template to show posts as per category dynamically
- page.php template file render a core gutenberg component programmatically
- Subpage is redirecting to spam site
- How to integrate custom HTML template in a premium wordpress theme?
- How to load page template according to the Searched Page
- Set page template automatically according to parent slug
- How to display the contents of URL1 when user visits URL2
- How to require specific PHP files for specific templates
- Static page won’t identify template
- send page ID’s to another template
- Restrict Access to Logged-In Users Page Template
- Target pages using Woo Commerce single product page template
- What is the best way to manage pages content?
- Add additional templates to the templates drop down on add page menu [duplicate]
- Show all images attached to posts as a gallery page?
- Custom templates stopped working
- .htaccess help to a beginner
- Single page theme: Can I render other pages with their respective themes within another page?
- Loading custom page template on a one page website
- Special 404 header page
- change the Theme dynamically
- How can I set full width page layout in a default post page?
- Why do some pages on my site use the previous theme?
- E-Commerce Products Page Sidebar Formatting
- Lead Generation with Cookies in WordPress
- Recents posts pulling from different post type
- trying to add custom landing page to Twenty Eleven- can’t get rid of Twenty Eleven header/container? [duplicate]
- Template tag for /page/# structure
- Fetching Image from other post/page with custom type
- wordpress header leaks into body in a specific template
- Display child page on parent
- Utilizing the template hierarchy while storing page templates in a subdirectory
- Show page name in browser
- How do I create a page template that doesn’t show URL, sidebar, nav menu, footer?
- Animation as shown in the link
- Custom page template not working on mobile
- How to show feature image, Title, Breadcrumb before Page in flatsome theme
- WordPress Page Slug with URL custom template
- Can wordpress search inside a custom page template?
- Extra HTML code added to my (on Chrome DevTools) but not on source code