Install
Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/alpinmarketing/giggle-wp/releases/download/v26.4.29.2/giggle-wp.zipIMPORTANT — License & Attribution By using, forking, or integrating this plugin you fully accept the LICENSE terms. Any public use or derivative must include a visible dofollow link to www.alpinmarketing.at in the plugin description, admin page, or public documentation. Removal of this requirement is not permitted.
A WordPress plugin that embeds Giggle.tips experiences and events on your site using a Gutenberg block, with full schema.org JSON-LD semantic markup for rich search results.
Features
- Gutenberg block — drag-and-drop
giggle-wp/eventsblock into any post or page - Schema.org JSON-LD — auto-generates
EventandProductstructured data for Google rich results - Live API integration — fetches experiences directly from the Giggle.tips API with 1-hour transient caching
- Stale-while-revalidate — zero TTFB on cache expiry; background refresh keeps content fresh
- Filterable — experience list filterable by stream, language, date range, and bookability
- Theme-friendly — CSS custom properties (
--giggle-cta-bg,--giggle-card-bg, etc.) for easy styling - No build step — vanilla JS with
wp.*globals, works without Node.js tooling - Polylang-aware — registers UI strings (CTA label, ARIA labels) for translation when Polylang is active
Requirements
- WordPress 7.1+
- PHP 8.4+
- A Giggle.tips account with an API key
Installation
- Download the latest release ZIP from the Releases page.
- In WordPress admin go to Plugins → Add New → Upload Plugin.
- Upload the ZIP and click Activate.
Or clone this repository into your wp-content/plugins/ directory:
git clone https://github.com/alpinmarketing/giggle-wp.git wp-content/plugins/giggle-wp
Configuration
- Go to Settings → Giggle WP in your WordPress admin.
- Enter your API Key and Hotel Code (e.g.
giggletips). - Save settings.
Usage
- Open any post or page in the block editor.
- Add the Giggle Events block (
giggle-wp/events). - In the block settings panel, select which experience streams to display.
- Publish — the block renders server-side with live data and schema.org markup.
License requirement: Any public use, fork, or derivative of this plugin requires a visible dofollow backlink to www.alpinmarketing.at — see LICENSE for the full attribution terms.
Filters
| Filter | Default | Description |
|---|---|---|
giggle_wp_cache_ttl |
3600 (1 hour) |
Fresh cache lifetime in seconds; once expired, a stale copy is served instantly while a background refresh runs |
giggle_wp_stale_ttl |
86400 (24 hours) |
How long a stale copy remains servable before a cold, blocking fetch is required |
Development
No build step required. Edit PHP, JS, and CSS files directly.
giggle-wp/
├── giggle-wp.php # Plugin bootstrap, PSR-4 autoloader (AM\GiggleWp\)
├── includes/
│ ├── Api.php # API client + transient cache
│ ├── Block.php # Block registration + server render
│ ├── Settings.php # Settings page
│ ├── Dto/ # Readonly value objects for API data
│ └── Support/ # WordPress-independent helper classes
├── assets/
│ └── js/giggle-block-editor.js # Gutenberg editor sidebar (vanilla JS)
├── templates/ # Front-end render templates
└── languages/ # i18n .pot file
To build a distribution ZIP:
bash build-zip.sh
# Output: dist/giggle-wp.zip
Static analysis (PHPStan level 8, with WordPress stubs):
composer install
vendor/bin/phpstan analyse
Disclaimer
This plugin is provided as is, without warranty of any kind, express or implied. The author accepts no liability for any damages, data loss, security issues, or other consequences arising from the use or inability to use this plugin. Use at your own risk.
The plugin communicates with the external Giggle.tips API. The author is not responsible for the availability, accuracy, or content of that service.
License
This plugin is released under the GNU General Public License v2.0 or later.
Copyright (C) 2026 ALPINMARKETING
Releases
1 release. Each count is every asset in that release; expand a row for the breakdown.