SimpliStock self-updates
Search and import images from Pexels, Unsplash, and Pixabay directly into your WordPress Media Library.
by Jon Mather · github.com/westcoastdigital/simplistock · website
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/westcoastdigital/simplistock/archive/refs/heads/main.zipShips its own WordPress updater (built-in updater), so new versions show up under Dashboard → Updates.
Search Pexels, Unsplash, and Pixabay and import free stock photos directly into your WordPress Media Library — without leaving the dashboard.
Description
SimpliStock brings three of the world's largest free stock photo libraries into your WordPress admin. Search, preview, and import high-quality photos straight to your Media Library in seconds — no downloading, no file uploads, no tab-switching.
Configure API keys for as many sources as you need. When more than one is active, a row of source buttons lets you search all libraries at once or drill into a single source. Photos can be imported from the dedicated search page, the block editor, the classic editor toolbar, or directly from a sidebar widget.
Features
Multi-Source Search
- Search Pexels, Unsplash, and Pixabay — any combination you configure
- All Sources mode interleaves results from every configured source in a single grid
- Per-source buttons let you narrow to a single library at any time
- Source labels appear on each card so you always know where a photo came from
Search & Filter
- Keyword search with live pagination
- Filter by orientation: Landscape, Portrait, or Square
- Filter by size: Large, Medium, or Small
- Choose how many results to display per page (12, 24, or 40)
Import Options
- Preview any photo in a full-screen modal before importing
- Choose your import size: Original, Large 2×, Large, or Medium
- Set custom alt text before importing — or use the photo description as a default
- Quick-import directly from the search grid without opening the modal
- Already-imported photos are detected across sessions so you never create duplicates
Duplicate Detection
- Every search result is automatically checked against your Media Library
- Photos already in your library display a green badge and an In Library button instead of Import
- The In Library button links directly to the attachment's edit screen
- In the modal, the size you previously imported is disabled and labelled — other sizes remain available
Block Editor Integration
- A SimpliStock Image block is available in the block inserter under the Media category
- Search all configured sources and browse results directly inside the block
- Selecting a photo imports it (if not already in your library) and automatically converts the block into a native core/image block
Classic Editor Integration
- An Add Stock Image button appears next to the Add Media button above the editor
- Clicking it opens a full search modal with source tabs, filters, and the photo grid
- Selecting a photo imports it if needed and inserts it directly at the cursor position
Widget
- A SimpliStock Photo widget is available in Appearance → Widgets and the Customizer
- Search and browse all configured sources directly from the widget form
- Selecting a photo imports it to your Media Library and saves it to the widget automatically
- Configure a link URL, alt text, display size (Thumbnail / Medium / Large / Full), and optional photographer credit caption
- The selected photo can be swapped or removed at any time without affecting other settings
- Works in both the classic Widgets screen and the block-based widget editor
Media Library Integration
- Imported photos are saved as standard WordPress attachments
- Photographer credit and source are stored automatically in post meta
- Filter your Media Library by source: All Sources, Pexels, Unsplash, Pixabay
Settings
- Separate API key fields for each source with connection status indicators
- Show/hide toggle on each key field for easy copy-paste
- Only sources with a configured key are active — configure one or all three
Security
- All AJAX requests are nonce-verified
- Capability checks (
upload_files) on every request - API keys stored securely in WordPress options, never exposed to the frontend
- Unsplash download tracking compliant with Unsplash API guidelines
Installation
- Upload the
simpli-stockfolder to/wp-content/plugins/ - Activate the plugin via Plugins → Installed Plugins
- Go to SimpliStock → Settings and enter at least one API key
- Navigate to SimpliStock → Search Images to start importing
You only need to configure the sources you want to use. The plugin works with any single source or any combination of all three.
API Keys
Pexels
- Visit pexels.com/api and create a free account
- Click Your API Key from your profile menu
- Copy the key and paste it into the Pexels section of the Settings page
Rate limits: 200 requests/hour, 20,000 requests/month. Searches count against this; imports do not.
Unsplash
- Visit unsplash.com/developers and create a free account
- Create a new application and copy the Access Key (not the Secret Key — that is only needed for OAuth user authentication, which this plugin does not use)
- Paste it into the Unsplash section of the Settings page
Rate limits: 50 requests/hour on the demo tier. Apply for production access for higher limits.
The plugin automatically triggers Unsplash's required download-tracking call on every import, keeping your account compliant.
Pixabay
- Visit pixabay.com/api/docs and register a free account
- Your API key is shown on that page after login
- Paste it into the Pixabay section of the Settings page
Rate limits: 100 requests/minute. Searches and imports both count.
Requirements
| WordPress | 5.8+ |
| PHP | 7.4+ |
| Tested up to | 6.6 |
FAQ
Do I need to configure all three sources?
No. The plugin works with any one source or any combination. Source buttons only appear when two or more sources are configured.
Are the photos free to use?
All three services provide free-to-use photos. Pexels and Pixabay photos require no attribution (though it is appreciated). Unsplash photos also allow free use — check each platform's licence for commercial details. The plugin stores photographer credit in post meta automatically.
What image sizes can I import?
- Original — full resolution
- Large 2× — approx. 1880 px wide
- Large — approx. 940 px wide
- Medium — approx. 350–640 px wide (varies by source)
WordPress will generate its own registered thumbnail sizes from whichever you import.
How does duplicate detection work?
Each imported photo's ID (prefixed with its source, e.g. pexels-123, unsplash-abc) is stored in post meta. On every search page, the plugin checks all results against your Media Library using these IDs. Photos already imported show a green badge and an In Library button. This works across sessions and across users.
Can I import the same photo in multiple sizes?
Yes. The modal shows which size was previously imported (that option is disabled). You can select any other size and import again — each import creates a separate attachment.
How does "Search All" work?
When All Sources is selected, the plugin queries each configured source in parallel, interleaves the results round-robin, and returns them as a single page. The total result count is the sum across all sources. Pagination is calculated from the largest total so you can keep browsing.
What about the Unsplash API terms?
The Unsplash API requires a "download" tracking request whenever a photo is downloaded. SimpliStock sends this automatically during import, so your usage remains compliant without any extra configuration.
Which Unsplash key do I need?
Only the Access Key. The Secret Key is used for OAuth user authentication (acting on behalf of a specific Unsplash user), which this plugin does not do. You can safely ignore it.
Does the widget work in the block-based widget editor?
Yes. The widget registers as a standard WP_Widget and is fully compatible with both the classic Widgets screen (Appearance → Widgets) and the block-based widget editor introduced in WordPress 5.8, as well as the Customizer widget panel.
Changelog
1.3.1
- Added SimpliStock Photo widget — search, import, and display a stock photo from any sidebar or widget area
- Widget supports link URL, alt text, display size, and optional photographer credit caption
- Widget works in the classic Widgets screen, block-based widget editor, and Customizer
- Settings page: added show/hide toggle on each API key field
- Settings page: redesigned with per-source cards, coloured accents, and connection status badges
- README: documented Unsplash Access Key vs Secret Key distinction
1.3.0
- Added Unsplash and Pixabay as search and import sources alongside Pexels
- Multi-source search: All Sources mode interleaves results from all configured sources
- Source tab buttons on the search page, classic editor modal, and block editor
- Source badge displayed on each card when multiple sources are active
- Three separate API key fields in Settings with status indicators
- Unified photo normalisation layer maps all three APIs to a common shape
- Media Library filter updated with per-source options
- Backward-compatible: existing Pexels imports are detected and display correctly
- Unsplash download-tracking compliant with API guidelines
1.2.0
- Added SimpliStock Image block for the WordPress block editor
- Added Add Stock Image button to the classic editor
- Already-imported photos detected in both editor interfaces
1.1.0
- Added persistent duplicate detection across sessions
- Import size stored in post meta per attachment
- Modal disables previously imported size
1.0.0
- Initial release