XV Random Quotes helps you collect and display random quotes everywhere on your WordPress site. Built with modern WordPress standards using Custom Post Types, Gutenberg blocks, and the REST API.
🎯 Modern WordPress Integration
- Custom Post Type – Quotes are managed as native WordPress posts with full revision history
- Gutenberg Blocks – Three dedicated blocks: Random Quote, Specific Quote, and List Quotes
- REST API – Access quotes programmatically for headless WordPress and custom integrations
- Taxonomy Support – Organize quotes with categories and authors (with URL support)
- Block Editor – Full support with dedicated meta boxes for quote content and source
✨ Key Features
- Multiple Display Methods – Widgets, shortcodes, template tags, and Gutenberg blocks
- AJAX-Powered Widgets – Automatic quote rotation without page reload (configurable timer)
- Category Filtering – Display quotes from specific categories or all quotes
- Author Management – Track quote authors with optional URL links
- Flexible Ordering – Random or sequential quote display
- Native Styling Toggle – Use plugin’s default styling or your theme’s styles
- Complete Backward Compatibility – All legacy shortcodes and template tags still work
📦 Display Options
- Gutenberg Blocks:
- Random Quote Block – Display one or more random quotes
- Specific Quote Block – Show a particular quote by ID
- List Quotes Block – Paginated list of quotes with filtering
- Widgets: Sidebar widget with AJAX refresh and category filtering
- Shortcodes:
[stray-random],[stray-id],[stray-all]for posts and pages - Template Tags:
stray_random_quote(),stray_a_quote()for theme integration - REST API:
/wp-json/xv-random-quotes/v1/quote/randomfor custom integrations
🔄 Automatic Migration
Upgrading from v1.x? The plugin automatically detects the need of migrating your existing quotes to the new Custom Post Type system. The migration is always manual to prevent race conditions and duplicate imports. When the plugin is activated or updated, an admin notice prompts the user to start the migration via a button. The migration then processes quotes in batches via AJAX.
🎨 Customization
- Customize HTML wrappers (before/after quote, author, source)
- Control author and source link formatting
- AJAX loading messages and animations
- Native WordPress styling or custom CSS
See RELEASE_NOTES.md for complete v2.0 features and migration guide.
Credits
- For main development of Stray Quotes, Ico
- For Multi-widget functionality, Millian’s tutorial
- For help in developing user-end AJAX functionality, AgentSmith
- For search functionality and bugfixing, Sergey Sirotkin
Localization
- German, thanks to Markus Griesbach
- Chinese, thanks to WGMking
- Croatian, thanks to Rajic
- Danish, thanks to Georg
Actually, these translations are not updated to the latest version. I am looking for new localizers, all languages welcome!
Please note: the best way to submit new or updated translations is to send me a direct link to the localization files in the contact page of my website. This way the files are made available to the users sooner, and without waiting for a new release.
Please note: If you want to create a localized copy of XV Random Quotes, consider skipping the help page and translate the rest. This will save you quite some time. The help page has a lot of text.
Known Issues
None currently reported for v2.0. If you find an issue, please report it on GitHub.
