WPSched
A WordPress plugin that integrates with Sched.com to display conference sessions and speakers with automatic speaker profile pages.
★ 0stars
0forks
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/akawamara/wpsched/archive/refs/heads/main.zipA WordPress plugin that integrates with Sched.com to display conference sessions and speakers with automatic speaker profile pages.
Features
- Session Management: Display and filter conference sessions
- Speaker Profiles: Automatic speaker profile pages at
/speakers/usernameURLs - Data Synchronization: Import data from Sched.com API with rate limiting
- Color Customization: Manual color matching for event types and subtypes
- Security: Rate limiting, SQL injection protection, and proper sanitization
- Responsive Design: Mobile-friendly interface
- Internationalization: Translation-ready with text domain support
Shortcodes
Sessions
[sched_sessions limit="32" pagination="true" show_filter="true"]
Displays conference sessions with filtering and pagination options.
Speakers
[sched_speakers limit="100" pagination="true"]
Shows speakers list with automatic links to individual speaker profiles.
Single Speaker Profile
[sched_single_speaker username="speaker-username" back_url="/speakers/"]
Displays detailed speaker information (used internally by virtual pages).
Speaker Profile System
The plugin automatically creates speaker profile pages:
- Automatic URLs:
/speakers/usernameformat - SEO-friendly: Clean URL structure
- Zero maintenance: Updates automatically with API sync
- Professional design: Avatar, bio, sessions, and contact info
- Theme integration: Works with any WordPress theme
How It Works
- Sync speakers from Sched.com
- Speaker profiles become available at
/speakers/username - Speaker names automatically link to their profiles
- No manual page creation required
Installation
- Upload the plugin files to
/wp-content/plugins/sched-conference-plugin/ - Activate the plugin through the WordPress admin
- Configure your Sched.com API settings in Settings → Sched Conference
- Sync data from Sched.com
- Use shortcodes to display content on pages
Configuration
API Settings
- API Key: Your Sched.com API key
- Conference URL: Your Sched.com conference URL (e.g., https://yourconf.sched.com)
- Pagination: Number of items per page
Color Settings
- Event Type Colors: Customize colors for different event types
- Event Subtype Colors: Customize colors for event subtypes
- Auto-discovery: New event types are automatically detected during sync
Data Management
- Auto Sync: Automatic data synchronization options
- Rate Limiting: Built-in API rate limiting (25 calls/minute)
- Cleanup: Optional complete data removal on plugin deletion
Security Features
- Rate Limiting: Prevents API limit violations (25 calls/minute)
- SQL Protection: All queries use prepared statements
- Input Sanitization: All user inputs properly sanitized
- Output Escaping: All outputs properly escaped
- Capability Checks: Admin functions require proper permissions
- CSRF Protection: Nonce verification for admin actions
Architecture
This plugin follows WordPress coding standards:
- ✅ Template System: Theme override support for all templates
- ✅ Virtual Pages: Professional speaker profile URLs
- ✅ Database Optimization: Efficient queries with N+1 prevention
- ✅ Security: Comprehensive security measures
- ✅ Internationalization: Translation-ready
- ✅ Performance: Rate limiting and caching
File Structure
wpsched/
├── README.md # Project documentation
├── sched-conference-plugin.php # Main plugin file
├── uninstall.php # Plugin uninstall handler
├── admin/ # Admin interface files
│ ├── class-sched-admin.php # Admin class with color settings
│ ├── css/sched-admin.css # Admin styles with color picker
│ ├── js/sched-admin.js # Admin JavaScript with rate limiting
│ └── partials/sched-admin-display.php # Admin template
├── includes/ # Core plugin files
│ ├── class-sched.php # Main plugin class with i18n
│ ├── class-sched-loader.php # Hook loader
│ ├── class-sched-activator.php # Activation handler with cleanup
│ └── class-sched-api.php # Sched.com API with rate limiting
├── public/ # Public-facing files
│ ├── class-sched-public.php # Public class with virtual pages
│ ├── css/sched-public.css # Public styles
│ ├── js/sched-public.js # Public JavaScript
│ └── partials/ # Template partials
│ ├── sched-sessions-display.php # Sessions template
│ ├── sched-speakers-display.php # Speakers template
│ ├── sched-session-card.php # Individual session card
│ ├── sched-speaker-card.php # Individual speaker card
│ ├── sched-single-speaker-display.php # Single speaker template
│ └── single-speaker-template.php # Virtual speaker page template
└── languages/ # Translation files
└── sched-conference-plugin.pot # Translation template