Beats Upload & Player is a WordPress plugin built for producers and beat stores that need a quick way to upload audio, manage artwork, and publish a browsable catalog with a global player.
- Front-end infinite scroll grid that groups beats by genre and streams audio through a sticky global player.
- AJAX-powered loader that keeps fetching categories as listeners scroll the page.
- Optional category search bar that jumps straight to the matching section of the catalog.
- Secure upload form shortcode for logged-in users with audio + cover image requirements.
- Beats Manager admin screen with pagination, live search, inline editing, image replace/remove, and one-click delete.
- Metadata stored as JSON alongside uploaded assets inside the WordPress uploads directory—no custom tables required.
- WordPress 6.0 or newer.
- PHP 7.4+ with
fileinfoenabled (needed for the upload validation helpers). - An account with
manage_optionscapability to access the Beats Manager dashboard.
- Copy the
beats-upload-playerfolder intowp-content/plugins/or upload the ZIP via Plugins → Add New → Upload Plugin. - Activate Beats Upload & Player from the WordPress Plugins screen.
- Visit Beats Manager in the admin menu to start uploading beats or to manage the library.
[beats_display_home]– Renders the AJAX catalog container. The plugin auto-loads batches of categories, builds beat cards, and fires abeats-loadedevent after each fetch.[beats_global_player]– Outputs the glassmorphic global player that listens for card interactions and keeps playback in sync across the catalog.[beats_category_search]– Adds a smart search bar that scrolls to matching categories and highlights the section briefly.[beats_upload_form]– Shows the front-end upload form. Only logged-in users see the fields; visitors are prompted to log in first. Each upload expects an MP3/WAV/M4A file, a cover image, price (optional, CAD), and genre selection.
Add the catalog + player shortcodes to any page to create a front-end beat store experience:
[beats_category_search]
[beats_global_player]
[beats_display_home]- Upload new beats with enforced audio/image validation and optional CAD pricing.
- Browse the library with live search, pagination, inline audio playback, and edit fields.
- Replace or remove cover art without touching the filesystem; uploads are deduplicated when possible.
- Delete beats with a confirmation prompt—unused audio and artwork files are removed automatically.
- Audio files live in
wp-content/uploads/beats/audio/. - Cover images live in
wp-content/uploads/beats/images/. - Metadata for every beat is stored in
wp-content/uploads/beats/beats.json. - The helper in
includes/beats-categories.phpdefines the default genre list; adjust it if you need bespoke categories.
- Public scripts (
beats-loader.js,beats-player.js) communicate via custom DOM events, so you can listen forbeats-loadedto trigger custom UI. - Admin tooling relies on WordPress’ bundled jQuery. Extend the dashboard by hooking into the same AJAX actions (
beats_list,beats_update, etc.). - Remember to back up the uploads directory before deploying to production or migrating between environments.