---
title: Changelog
description: Version history and changes for the Itinerator WordPress Plugin
---

# Changelog

## [Unreleased]

### Added
-

### Changed
-

### Fixed
-

## [2.5.4] - 2025-12-12

### Changed
- Refactored Map component to prevent resetting bounds after initial load, introducing a flag to track if initial bounds have been set to ensure user interactions do not alter the map view
- Enhanced trail.js to manage InfoWindow behavior by tracking the currently active stop, implementing logic to close the previous InfoWindow when hovering over a different stop while keeping it open on mouse leave

## [2.5.3] - 2025-12-08

### Added
- Enhanced Related Posts block to support filtering by related itineraries on listing pages

### Changed
- Updated Map block documentation and CustomMarker component to support comma-separated coordinates for markerAnchor and markerOrigin
- Enhanced documentation with shortcode example for custom marker styling
- Improved handling of anchor and origin points in the CustomMarker implementation
- Updated Related Posts block documentation to clarify filtering options and improve UI for selecting itineraries in block settings

## [2.5.2] - 2025-12-03

### Added
- Enhanced Related Posts block with automatic filtering options and advanced query capabilities
- Added new attributes for filtering by current region, itinerary, and listing, along with logic for combining filters
- Added 'listingType' attribute to map.json for improved flexibility in attribute management

### Changed
- Updated Sidebar component in itinerary.js to use an empty array for showColumnsFor instead of a string, improving column visibility options handling
- Refactored settings sanitization in itinerator plugin to merge new input with existing settings, ensuring checkbox fields are correctly handled and default values are applied
- Implemented character normalization for alpha grouping in SimpleListing and ListingsDirectory to handle accented characters and special cases consistently across PHP and JavaScript

### Fixed
- Fixed symlink resolution issues in block editor assets by dynamically determining the correct plugin URL, ensuring proper loading of CSS and JS files regardless of symlink configurations

## [2.5.1] - 2025-11-19

### Added
- Enhanced Additional Listings block to include 'Show Subtitle' toggle

### Changed
- Refactored text matching logic in shared index to normalize apostrophes and improve case-insensitive search functionality
- Replaced deprecated jQuery `:icontains` selector with a custom function for better accuracy and maintainability
- Enhanced Contents class to map query data to Content objects and ensure proper media setup
- Updated content template to include fallback for hero images and always display descriptions for Media types
- Improved handling of content types and filtering logic

### Fixed
- Fixed DMOs on itinerary to pull only those related to that itinerary instead of the region

## [2.5.0] - 2025-11-14

### Added
- Added Itinerator Search Integration with WordPress search, including search query augmentation and result merging for Itinerator content
- Implemented permalink overrides for synthetic posts and enhanced caching mechanisms for improved performance
- Refactored sitemap filters to content filters functionality for managing listing type and tag filters in the page editor (affects both sitemap generation and WordPress search results)
- Implemented region filtering modes across collection blocks (Challenges, Events, Itineraries, Listings, and Regions)
- Added `regionFilteringMode` attribute allowing for flexible region context handling
- Enhanced ItineraryBlock to include showStopSubtitle attribute for conditionally rendering stop subtitles

### Changed
- Refactored API query parameter construction in content filters, replacing associative array with Rails-style query string syntax for improved compatibility with external APIs
- Updated related logic to ensure proper handling of multiple listing types and tag IDs
- Refactored Itinerary class to improve post retrieval safety with checks to ensure linked posts are instances of \WP_Post before accessing properties
- Updated documentation and UI components for content filters, ensuring clarity and consistency in filter management

## [2.4.4] - 2025-11-07

### Added
- Added content filters functionality to the Itinerator plugin with new settings for configuring listing type and tag filters in the page editor (controls both sitemap generation and search result routing)
- Added summary view in the settings menu for managing filters
- Added custom hook for fetching listing main types and updated ListingTypeControl to utilize it
- Enhanced UI with loading state and checkbox controls for type selection
- Implemented enhanced sitemap integration with Yoast SEO and WordPress core sitemaps, including fallback handling and a standalone sitemap endpoint
- Introduced functions for checking plugin availability and fetching itinerator URLs, along with XML rendering for standalone requests

### Changed
- Refactored sitemap URL fetching to support itineraries, events, challenges, forms, and contents with improved error handling
- Introduced pluralize_type function for dynamic API endpoint resolution and streamlined data validation for API responses
- Improved sitemap functionality with enhanced error handling, fallback mechanisms, and validation checks for API responses and URLs

## [2.4.3] - 2025-11-06

### Added
- Added subtitle property to Listings block

### Changed
- Enhanced API error handling in query_itin_api function by increasing timeout, adding detailed error messages, and checking for empty response body
- Updated itinerary block documentation to include featured status and subtitle properties for stop types

## [2.4.2] - 2025-11-04

### Added
- Added featured property to itineraries
- Added subtitle property to stop

### Changed
- Tweaked error message

## [2.4.1] - 2025-10-30

### Added
- Enhanced LinkedPageSelect component with keyName prop and optimized useEffect

### Changed
- Cleaned up unused imports

## [2.4.0] - 2025-10-30

### Added
- Implemented safe API querying across templates
- Added fallback image function to StopEvent template
- Enhanced ItineraryBlock to fetch itinerary data from page metadata
- Enhanced Map block with advanced tag filtering capabilities
- Added tag name extraction functionality for filtering records
- Completed automatic plugin update system
- Added automatic plugin update system
- Enhanced developer documentation sync system
- Implemented calendar view for events with caching and styling
- Enhanced shortcode handling for array attributes in ShortcodeDisplay component

### Changed
- Updated event date preset button structure for compatibility
- Standardized querydata handling across template classes
- Prevented SEO data setting during REST API requests
- Prevented duplicate initialization of Itinerator collapse and tab components
- Removed bootstrap overrides when bootstrap is disabled

### Fixed
- Updated default values in listings attributes and removed console logs from bootstrap utilities
- Cleaned up debugging logs from map location processing

## [2.3] - 2025-10-02

### Added
- Enhanced ItineraryBlock to fetch itinerary data from page metadata
- Enhanced Map block with advanced tag filtering capabilities
- Added tag name extraction functionality for filtering records
- Implemented automatic plugin update system
- Enhanced developer documentation sync system
- Implemented calendar view for events with caching and styling
- Enhanced shortcode handling for array attributes in ShortcodeDisplay component
- Enhanced Filter and Map blocks with dynamic filtering capabilities
- Enhanced Itinerary block with leg hero images support and added back linked page select
- Added tags property to contents
- Updated region data fetching to always use hierarchical structure

### Changed
- Updated event date preset button structure for compatibility
- Standardized querydata handling across template classes
- Prevented SEO data setting during REST API requests
- Prevented duplicate initialization of Itinerator collapse and tab components
- Removed bootstrap overrides when bootstrap is disabled
- Indicated default views in UI

### Fixed
- Updated default values in listings attributes and removed console logs from bootstrap utilities
- Cleaned up debugging logs from map location processing

## [2.2] - 2025-09-16

### Added
- Added canonical URL handling for Itinerator pages
- Enhanced page title handling to support multiple title properties
- Implemented comprehensive page title and meta description handling system
- Added page title handling with new theme display filter
- Added listing type filter support in Filter block
- Improved region data retrieval in Filter class
- Enhanced map functionality with listing type support
- Enhanced form block to support WebsiteField input
- Added MCP configuration for context7 server
- Added automated Chatwoot documentation sync system
- Added link to listing name
- Enhanced map block location handling by adding event and itinerary support, improving coordinate validation, and updating sidebar options

### Changed
- General documentation updates, refactored for easier reading and less duplication

## [2.1] - 2025-09-02

### Added
- Added filter classes to contents
- Added content shortcodes for single content pages
- Added plugin updater system

### Fixed
- Fixed error with parsedown

## [2.0] - 2025-07-24

### Added
- Added content shortcodes
- Enhanced Filter Block with Region Display Modes
- Added support for featured regions
- Added region_name property to Itinerary class
- Enhanced SimpleEvent Class with Region Attributes
- Enhanced Regions Block functionality and documentation
- Added Admin Page Type Indicators feature
- Added Integration Plans for Divi, Divi 5, and Elementor
- Added Powered by Tourismo Footer functionality
- Enhanced Custom Template functionality across multiple blocks
- Added "Custom Template Name" option to ViewTypeControl in multiple blocks
- Added Itineraries property to template classes
- Enhanced collection blocks with manual region filtering
- Added location property to Event class and updated Stop class for display type
- Enhanced Socials block to improve data handling and display
- Added fetch_full_object and get_singular_type methods to BlockTemplate class
- Enhanced Regions block to support display of related itineraries
- Enhanced Related Posts block to support shortcodes in custom query
- Enhanced Itinerary block to support region and event details
- Enhanced listings and additional listings functionality with mainType support
- Added showRelatedItineraries attribute to listings and templates
- Added reCAPTCHA support to FormBlock for enhanced security
- Enhanced RelatedPosts block with additional attributes and custom query support
- Added listing type and showRegion properties
- Added region filtering to events
- Added region properties to event and listing templates
- Added tabbed itinerary template and relevant Map functionality
- Refactored filter component and enhanced filtering logic
- Enhanced Itinerary and Stop templates with Event support
- Added view types to regions block, carousel option to listings, and templates to itineraries
- Enhanced Flickity Carousel initialization and options
- Implemented Bootstrap CSS variables override system and optimized styles
- Added ShortcodeDisplay component to editor blocks
- Refactored Bootstrap styles and introduced custom reboot
- Enhanced editor block error handling for empty content
- Enhanced block class addition to body and improved error handling
- Added frontend page builder detection functions
- Added option to disable simplified theme CSS for custom styling
- Implemented fallback image logic in template classes
- Enhanced content templates and media handling
- Added CSS class override implementation guide
- Enhanced template logic for challenges and featured listings
- Added className and block alignment attribute to multiple templates
- Added additional classes to make front end styling more robust
- Implemented reusable TagsList component and refactored tag rendering
- Added SAMPLE_EVENT and SAMPLE_CHALLENGE data structures
- Enhanced Map component bounds handling to include boundaries
- Enhanced template handling for markdown parsing and shortcode rendering
- Enhanced Event block with additional show attributes
- Added namespacing rules for PHP, CSS, and JavaScript in documentation
- Enhanced multiple blocks with new show attributes and rendering options

### Changed
- Changed to get all global content types, not just platform
- Only apply filter if there are URL params to apply
- Refined Regions Block documentation and query logic
- Updated "Powered by Tourismo" footer functionality
- Removed empty "Display Options" panel from sidebar in itineraries block
- Updated Itinerary templates to include dynamic display types
- Clarified badge naming
- Refactored block registration and shortcode handling for improved structure
- Updated dependencies and configuration for improved build process
- Refactored script loading logic for Itinerator
- Sanitized JSON output in map template
- Updated templates to include itinerator page type classes
- Refactored CSS class helpers and updated template usage
- Refactored settings management to use unified settings array
- Updated spacing classes in Bootstrap and editor blocks to use v4.6 classes
- Refactored templates and JSON attributes to maintain backward compatibility
- Refactored cursor rules documentation into modular files
- Refactored templates to include pluralization function
- Refactored templates to include namespacing for PHP functions and methods
- Refactored Challenges block by removing unused show attributes
- Refactored SimpleListing class for improved readability and structure

### Fixed
- Fixed tag data filtering
- Switched to SimpleEvent class for Events collection block to avoid post mapping bug
- Fixed PHP 8.1 deprecation notices
- Fixed build error on dev server
- Fixed filter logic for region filtering
- Fixed namespacing issue in menu setup
- Fixed Dotenv conflict with older versions
- Fixed DMOs block not working on single listing and event
- Removed all backslash prefixes for global and WP functions
- Fixed map container class

## [1.13] - 2025-07-03

### Added
- Enhanced content block to handle all types of content
- Refactored content handling and introduced ContentsBlock
- Added additional default_contents to blacklist
- Added project essentials documentation for Itinerator Plugin
- Added events to itineraries

### Changed
- Refactored content handling and removed ContentItem block
- Refactored content handling

### Fixed
- Removed debug output and no-content handling from content templates

## [1.12] - 2025-06-24

### Added
- Implemented frontend page builder detection in get_page_data function
- Enhanced caching functionality in admin bar and API queries
- Added block development guide outlining the four-part block system
- Added sorting feature to challenges, itineraries, listings, and regions

## [1.11] - 2025-04-30

### Added
- Enhanced map functionality to handle single marker cases
- Added cursor rules documentation for Itinerator plugin
- Enhanced trail.js with improved scrolling and animation handling
- Enhanced block editor integration and API key validation
- Enhanced map marker handling and validation across components
- Added featured property to SimpleListing class
- Implemented smooth animation system for map interactions and enhanced InfoWindow handling
- Enhanced form-block template with custom redirect functionality
- Implemented set_target_paths method and enhanced shortcode handling in Form class
- Enhanced form-block template with safe_id function and input sanitization
- Added Tasks and Task classes, enhanced block registration and templates
- Refactored Challenge and ChallengeBlock classes, introduced SimpleChallenge

### Changed
- Removed unused templates
- Refactored settings menu to remove unnecessary backslashes from function calls
- Refactored templates to consistently use namespaced functions
- Upgraded wordpress-seo-stubs and removed dependencies no longer used
- Refactored FormBlock and Tasks classes to improve form handling and API interactions

### Fixed
- Fixed map centering issues
- Fixed missing pluralize function namespacing
- Fixed map centering bug and DMOs block breaking
- Refactored shared_block_assets function to streamline script registration and debugging

## [1.10] - 2025-02-10

### Added
- Enhanced script loading and debugging logic
- Enhanced shortcode detection and script loading logic
- Enhanced shortcode handling and registration in Itinerator
- Implemented itinerary filtering and visibility toggles in DmoItinerariesBlock
- Updated Snowplow tracking script URLs to point to the new Tourismo site
- Enhanced recurring event occurrence formatting in Events template
- Enhanced user permissions for cache clearing functionality
- Implemented reset functionality for theme color settings
- Added clear_itin_cache function for AJAX cache clearing
- Enhanced cache clearing functionality in Itinerator
- Added carousel images to event
- Enhanced form block with advanced input features and dynamic file handling
- Added support for email field
- Added whitelist field to plugin settings

### Changed
- Reverted domains for Snowplow
- Refactored script loading logic in shared block assets and helpers
- Improved event cost display logic in event details template
- Updated hero figure styling in itineraries grid template
- Registered itinerator store conditionally to prevent duplicate registrations
- Formatted image field submissions in proper data URI format
- Updated deploy script to serve file to Tourismo domain

### Fixed
- Fixed undefined error in Display component by safely handling sample.id

## [1.9] - 2024-05-23

### Added
- Refactored Events Block UI with enhanced layout and presentation
- Enhanced date filtering logic with improved event time parsing and debugging
- Added Snowplow tracking integration and settings field
- Added API transient caching and clear/disable ability
- Added event filtering via moment.js and flatpickr
- Added Google Maps to block editor
- Added region slug and filter classes to SimpleItinerary class
- Added transients and clear button
- Added shortcodes to each block
- Added theme settings for color and global inline style vars
- Added region shortcode to itinerary
- Added shortcodes for all blocks
- Added page type to classic editor
- Added metabox to classic editor to set Itin page type

### Changed
- Refactored Page Settings Plugin with Dynamic WordPress Component Loading
- Improved accessibility and code formatting across components
- Improved view for DMO itineraries
- Improved tooltip to accept HTML tags
- Changed media queries to min-width
- Reworked event display in grid and single views
- Declared dynamic properties in class to avoid deprecation notice
- Cleaned up console.logs
- Moved events functions to class as methods
- Updated dependencies to use wp-block-editor instead of wp-editor
- Updated filter behavior to accept/update URL parameters
- Made itineraries filterable
- Removed transients from plugin
- Moved the enqueuing of Itin JS into shortcode/block render
- Completed MVP of form block
- Updated toggle controls behavior
- Major style and view updates

### Fixed
- Fixed URL parameters on filters
- Fixed filter logic to work with events and listings
- Excluded flatpickr from prefixing on build
- Fixed syntax errors
- Fixed checkbox required issue
- Fixed form block submission and display issues
- Fixed image upload in form block
- Fixed button border radius theme setting
- Fixed persistent bug on single itinerary transient
- Fixed transient cache for alpha listings
- Fixed options not saving on first save bug
- Fixed theme settings to show when no CMS extension

## [1.8] - 2023-11-06

### Added
- Added Itin class to block templates
- Added PostCSS selector prefix .itin to bootstrap and flickity webpack config
- Added FilterRecordsRegion toggle and enable help attribute on ToggleControl
- Added filterRecordsByRegion and RegionId where necessary
- Added loading=async to Google Maps
- Added docblock comments for PHP backward compatibility
- Added total_position to stop
- Added REST route for dmos/itineraries
- Added custom radius and gap attributes and controls
- Added conditional registration of blocks based on API keys
- Added error checking in useRecords fetch
- Added platform_logo
- Added options to database for API key checks
- Added constants and globals for API key validation
- Added DMO/partner API key field
- Added option to include bootstrap to admin settings
- Added auto column option to DMO grid

### Changed
- Cleaned up bootstrap
- Updated composer dependencies
- Changed region_page_slug to region_slug
- Removed bootstrap from admin
- Allowed itinerary block to be placed on any page by selecting a specific itinerary
- Updated properties in simple classes
- Moved CSS out of template and tweaked templates
- Updated globals and finished API key checks
- Modified API response to return an array
- Decided which blocks to register based on API key validity

### Fixed
- Fixed fatal error on activation
- Fixed bootstrap path
- Fixed permalink check to include any other type
- Fixed carousel object error

## [1.7] - 2023-09-14

### Added
- Added type to listing class
- Added check for postname permalink and display notice if not
- Added listing_type to Stop and type to SimpleListing
- Added support for polymorphic stop targets
- Added shortcodes to Itinerary class

### Changed
- Adjusted admin notice
- Converted icon name to lowercase

### Fixed
- Fixed line breaks in parse_markdown

## [1.6] - 2023-07-27

### Added
- Added Itinerary shortcodes
- Extended StopListing from SimpleListing and added more Tags to Simple Classes
- Fixed TagCategory filtering
- Added babel-plugin-lodash to keep global lodash clean
- Updated events to new schema and implemented event filter_classes
- Added content to challenges and challenge count to region
- Added challenge and challenges blocks
- Added Events and Event blocks
- Added display count attribute to RelatedPosts block
- Added support for media to Content block
- Added support for video to Image class
- Added short_description to SimpleItinerary
- Added Listing Website Buttons for website and booking
- Added Itineraries block
- Added show/hide labels to map markers
- Added address and image to marker infowindow
- Added hover to map polygons and page nav onclick for polygons
- Added Google Maps style option
- Added Infowindow to map markers with linking pages
- Added parent_slug to regions
- Added related-posts with blockprops to all edit blocks
- Added shortcodes for stripped markdown

### Changed
- Removed lodash from externals so it works on front end
- Moved maps const to inside jQuery init and set to window
- Allowed toggling filter regions block by subregions if on region page
- Unified itineraries block to filter by region and tags like listings block
- Changed Image class to Media
- Updated map boundsRef function to use boundaries or markers
- Switched map labels to infoboxes

### Fixed
- Fixed Itineraries block in single itinerary page
- Fixed Media typo in Itinerary class
- Fixed tag filter reset issue

## [1.5] - 2022-08-03

### Added
- Added image dimensions to image class
- Added shortcode list page settings
- Added Socials block
- Added vendors to lib file and included in repo for class autoload
- Added subtitle to title block
- Added JSONMapper
- Added filters for listing and region slugs
- Added Yoast Support to Itinerator Pages
- Added descriptionType to description block
- Added custom template for additional-listings
- Added missing itineraryScrollPosition
- Added map JavaScript for mobile
- Added regions rewrite

### Changed
- Updated outdated templates
- Removed unused components
- Removed duplicate dependencies
- Switched editor blocks to custom class
- Updated node to 16, switched from npm to yarn
- Removed dist from repo
- Switched page meta form to React
- Replaced single listing and region page to page meta
- Updated Flickity settings
- Moved to region/listing agnostic blocks
- Moved amenities to separate block
- Re-organized file structure
- Major restructure of app, moved to samples in editor
- Converted to Gutenberg block

### Fixed
- Fixed filtering for listings and regions tagCategory
- Fixed listings and regions block
- Fixed script enque crashing widgets.php
- Fixed bad call in Itinerary block
- Fixed title attribute type incorrectly assigned boolean
- Fixed jQuery and other includes to not use node_modules
- Fixed Flickity issues
- Fixed single listing issues
