A WordPress plugin that provides a comprehensive repository browser for exploring and managing WordPress plugins and themes from the AspirePress ecosystem.
- 🔍 Package Search & Browse - Search and explore WordPress plugins and themes with detailed information
- 🎨 Theme Discovery - Browse and preview WordPress themes with live demos
- � Plugin Management - Discover and explore WordPress plugins
- �🛒 Cart Functionality - Add packages to cart with persistent storage via cookies
- 🎮 WordPress Playground Integration - Generate blueprint URLs for instant WordPress demos
- ✨ Interactive UI - Modern lightbox galleries, floating cart button, and smooth animations
- 📱 Responsive Design - Mobile-friendly interface with SCSS-powered styling
- ♿ Accessibility - ARIA-compliant components with keyboard navigation support
- 🔌 REST API - REST API endpoints for external integrations
- 🎨 Theme Override Support - Template hierarchy allows theme customization
- Download or clone this repository
- Place the
aspireexplorer
folder in your/wp-content/plugins/
directory - Activate the plugin through the 'Plugins' menu in WordPress
- Create pages with slugs
plugins
andthemes
for the archive pages
AspireExplorer supports WordPress template hierarchy, allowing themes to override plugin templates:
- Child Theme (highest priority):
wp-content/themes/child-theme/aspireexplorer/[template-file]
- Parent Theme:
wp-content/themes/active-theme/aspireexplorer/[template-file]
- Plugin Default (fallback):
wp-content/plugins/aspireexplorer/includes/view/[template-file]
You can override these template files in your theme:
Search Forms:
themes-search-form.php
- Theme search formplugins-search-form.php
- Plugin search form
Archive Templates:
archive/themes.php
- Themes listing pagearchive/plugins.php
- Plugins listing page
Single Templates:
single/theme.php
- Individual theme displaysingle/plugin.php
- Individual plugin display
To customize the themes listing in your theme:
- Create folder:
wp-content/themes/your-theme/aspireexplorer/
- Copy:
wp-content/plugins/aspireexplorer/includes/view/archive/themes.php
- Paste to:
wp-content/themes/your-theme/aspireexplorer/archive/themes.php
- Customize as needed
Your customizations will be preserved during plugin updates.
- Download or clone this repository
- Place the
aspireexplorer
folder in your/wp-content/plugins/
directory - Activate the plugin through the 'Plugins' menu in WordPress
- Create pages with slugs
plugins
andthemes
for the archive pages
Add these constants to your wp-config.php
file:
// Root path for URL structure (optional, defaults to empty)
define( 'AE_ROOT', 'packages/' )
Create WordPress pages with these exact slugs:
- plugins - For the plugins archive and individual plugin pages
- themes - For the themes archive and individual theme pages
With the default configuration, your URLs will be:
Plugins:
- Archive:
yoursite.com/packages/plugins/
- Individual:
yoursite.com/packages/plugins/plugin-name/
Themes:
- Archive:
yoursite.com/packages/themes/
- Individual:
yoursite.com/packages/themes/theme-name/
REST API:
- Playground Blueprint:
yoursite.com/wp-json/aspireexplorer/v1/playground/blueprint
Endpoint: GET /wp-json/aspireexplorer/v1/playground/blueprint
Generate WordPress Playground blueprints for instant theme/plugin demos.
Parameter | Type | Required | Description |
---|---|---|---|
theme |
string | No | Theme download URL (.zip file, HTTPS only) |
plugin |
string | No | Plugin download URL (.zip file, HTTPS only) |
landing_page |
string | No | Landing page path (default: / ) |
activate |
boolean | No | Auto-activate asset (default: true ) |
import_starter_content |
boolean | No | Import theme starter content (default: true ) |
Theme Blueprint:
GET /wp-json/aspireexplorer/v1/playground/blueprint?theme=https://example.com/theme.zip
Plugin Blueprint:
GET /wp-json/aspireexplorer/v1/playground/blueprint?plugin=https://example.com/plugin.zip
Combined Theme + Plugin:
GET /wp-json/aspireexplorer/v1/playground/blueprint?theme=https://example.com/theme.zip&plugin=https://example.com/plugin.zip&landing_page=/demo
Returns a JSON blueprint compatible with WordPress Playground:
{
"$schema": "https://playground.wordpress.net/blueprint-schema.json",
"landingPage": "/",
"features": {
"networking": true
},
"steps": [
{
"step": "installTheme",
"themeData": {
"resource": "url",
"url": "https://example.com/theme.zip"
},
"options": {
"activate": true,
"importStarterContent": true
}
}
]
}
- ✅ HTTPS Only: Only secure URLs accepted
- ✅ File Type Validation: Only
.zip
files allowed - ✅ Domain Filtering: Blocks localhost and internal IPs
- ✅ Input Sanitization: All parameters properly sanitized
- ✅ CORS Headers: Cross-origin requests enabled
aspireexplorer/
├── includes/
│ ├── controller/ # MVC Controllers
│ │ ├── class-main.php # Main plugin controller
│ │ ├── class-packages.php # Unified packages controller (themes & plugins)
│ │ └── class-playground.php # WordPress Playground API
│ ├── model/ # Data Models
│ │ ├── class-singleton.php # Base singleton pattern
│ │ ├── class-plugin-info.php # Plugin data model
│ │ └── class-theme-info.php # Theme data model
│ ├── view/ # Template Files (Plugin Defaults)
│ │ ├── archive/ # Archive page templates
│ │ │ ├── plugins.php
│ │ │ └── themes.php
│ │ ├── single/ # Single item templates
│ │ │ ├── plugin.php
│ │ │ └── theme.php
│ │ ├── plugins-search-form.php
│ │ └── themes-search-form.php
│ ├── class-utilities.php # Template hierarchy helper
│ └── autoload.php # PSR-4 autoloader
├── assets/
│ ├── js/
│ │ └── aspire-explorer.js # Main JavaScript (ES6 classes)
│ ├── scss/
│ │ ├── aspire-explorer.scss # Main SCSS file
│ │ ├── _cart.scss # Cart styling
│ │ ├── _lightbox.scss # Lightbox component
│ │ └── _search.scss # Search components
│ └── css/
│ └── aspire-explorer.css # Compiled CSS
└── composer.json # PHP dependencies and scripts
The frontend uses modern ES6 classes:
- AeCart - Cart functionality with cookie persistence
- AeLightbox - Image lightbox with keyboard navigation
- AeDetails - Collapsible details/summary components
- FallingText - Animation effects
-
Install PHP dependencies:
composer install
-
Code Quality Tools:
# Format code composer run format # Lint code composer run lint # Fix linting issues composer run lint:fix
-
SCSS Compilation:
# Install Node dependencies npm install # Compile SCSS npm run sass # Watch for changes npm run sass:watch
This project follows WordPress Coding Standards with:
- PHP_CodeSniffer with WordPress rules
- PHPCS for code formatting
- SCSS for modular styling
- ES6 JavaScript with jQuery integration
The cart system allows users to collect packages for later reference:
- Persistent Storage - Uses cookies to maintain selections across sessions
- Toggle Behavior - Add/remove packages with single button click
- Floating UI - Minimalist floating cart button with popup
- Accessibility - Full keyboard navigation and screen reader support
- Universal Support - Works with both themes and plugins seamlessly
Templates Not Loading:
- Check file permissions on theme
aspireexplorer
folder - Ensure template files follow exact naming convention
- Clear any caching plugins
Template Hierarchy Not Working:
- Verify theme has
aspireexplorer
folder in correct location - Check file names match exactly (case-sensitive)
- Ensure WordPress functions
get_template_directory()
andget_stylesheet_directory()
work
- Go to Settings > Permalinks and click "Save Changes"
- Ensure your pages have the correct slugs (
plugins
,themes
) - Check that
AE_ROOT
constant matches your URL structure - Verify
Packages
class instances are properly initialized
- Ensure cookies are enabled in browser
- Check for JavaScript errors in browser console
- Verify jQuery is loaded properly
- Check if CSS file is properly enqueued
- Compile SCSS if using development version
- Clear any caching plugins
- Verify theme compatibility
Packages Not Displaying:
- Check WordPress API functions are available (
themes_api
,plugins_api
) - Verify network connectivity to package repositories
- Check for PHP errors in WordPress error logs
Architecture Issues:
- Ensure
Packages
class is autoloaded correctly - Verify singleton instances are properly created
- Check factory methods return valid instances
Playground Blueprint Endpoint Not Working:
- Verify REST API is enabled (
/wp-json/
accessible) - Check WordPress version (requires 4.7+)
- Ensure plugin is activated and REST routes are registered
Blueprint Validation Errors:
- URLs must be HTTPS only
- Only
.zip
files are accepted - At least one theme or plugin URL must be provided
- Landing page must start with
/
CORS Issues:
- REST endpoint includes CORS headers automatically
- For custom domains, verify server CORS configuration
- Fork the repository
- Create a feature branch
- Follow WordPress coding standards
- Run linting and formatting tools
- Submit a pull request
This project is licensed under the GPL v2 or later - see the WordPress plugin header for details.
For support and bug reports, please use the GitHub issue tracker or contact the AspirePress team.