Boulaide Plugin
Custom WordPress plugin for the Visit Boulaide website, adding Gutenberg blocks and a Maps custom post type with a single template.
by Guilherme Silva Fonseca · github.com/guisfons/boulaide-plugin · 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/guisfons/boulaide-plugin/archive/refs/heads/master.zipBoulaide Plugin — Case Study
Custom WordPress Gutenberg Plugin · Tourism & Destination Website · Custom Post Type with Map Integration · Gutenberg Block Library
1. Project Overview
The Boulaide Plugin is a custom WordPress plugin built for the Visit Boulaide tourism website (visit-boulaide.com). It extends the site's content capabilities with a dedicated Maps custom post type — complete with a single-entry template for displaying geographic points of interest — and a library of custom Gutenberg blocks tailored to the destination marketing content requirements of the tourism sector.
2. The Problem
The Visit Boulaide website required a content architecture that the tourism board's editorial team could manage independently, specifically around the site's core feature: an interactive map of local attractions, trails, and points of interest. The standard WordPress post type was semantically inappropriate and structurally insufficient for geo-referenced content entries, and no off-the-shelf plugin provided the combination of custom Gutenberg blocks and map-specific CPT that the project demanded.
3. The Solution & Architecture
The plugin follows WordPress plugin best practices: a single bootstrap file (boulaide-plugin.php) that registers the CPT via register_post_type(), enqueues block editor assets, and registers all custom Gutenberg blocks using the register_block_type() API.
Maps Custom Post Type
The Maps CPT is registered with full admin UI support (title, editor, thumbnail, custom fields) and a public single template (single-maps.php in the theme, called via the plugin's template redirect filter). Each map entry stores geographic metadata (coordinates, category, description) as post meta, queryable via the WordPress REST API for frontend map rendering.
Custom Gutenberg Blocks
The plugin registers multiple custom blocks built with the WordPress @wordpress/blocks package, each serving a specific content pattern identified during the discovery phase:
- Destination highlight blocks — structured layouts for featuring specific attractions with image, description, and CTA.
- Editorial content blocks — custom typography and spacing configurations aligned to the brand's design system.
- Map embed blocks — blocks that reference
MapsCPT entries and render the associated geographic data in a styled container.
4. Technologies Used
- CMS & Backend: WordPress 6.0+, PHP 8.0+
- Block Development: Gutenberg Block API (
@wordpress/blocks,register_block_type) - Content Architecture: Custom Post Types (Maps CPT with geo-referenced post meta)
- JavaScript: ES2022 — block registration and editor UI components
- Live Site: visit-boulaide.com/maps/template/
5. Design Process & UI/UX
The Maps CPT single template was designed to function as a standalone destination card: a full-width hero image, key facts panel (category, distance, difficulty level for trails), a rich text description zone, and an embedded map panel. The layout was validated against the target audience — tourists on mobile devices — prioritising large imagery and minimal cognitive load over information density.
The custom Gutenberg blocks were designed with the editorial team's workflow in mind: each block exposes only the fields relevant to its content type, with preview renders in the editor that closely match the frontend output, reducing the need for repeated publish-preview cycles during content creation.
6. Project Outcomes
- Editorial independence: The tourism board's team can create and manage all map entries and editorial content independently, without developer involvement.
- Semantic content architecture: The
MapsCPT provides a structured, queryable data model for geographic content that is extensible — additional metadata fields (accessibility info, seasonal availability) can be added without restructuring the content model. - Block library reuse: The custom Gutenberg blocks establish a consistent visual vocabulary across all destination marketing content, enforcing brand consistency at the authoring layer.
- Performance: Plugin-only architecture means the custom functionality is portable and can be activated on any WordPress environment without theme dependency, following WordPress separation-of-concerns principles.