Skip to content

Tour Operator JSON-LD schema #1143

Description

@krugazul

Overview

Update the Tour Operator structured data implementation to align with the approved Schema 2.2 field mappings in the project Google Doc.

Approved mapping source:
https://docs.google.com/document/d/1UVfrdgR1o2A-5YuyMbY6Bxevy3EXYfOkj-p6dwXFxMA/edit?tab=t.1lurdmu71zph#heading=h.dyqrglfxh4v5

Current implementation PR:
#1148

Delivery Decision

Scope

Implement and harden the approved schema mappings for:

  • Tour post type as TouristTrip
  • Accommodation post type as LodgingBusiness
  • Destination post type as TouristDestination

The implementation should continue to integrate with Yoast SEO when present, and provide standalone JSON-LD output when Yoast SEO is not active.

Tasks

Validation And QA

  • Add or update unit tests for shared schema helper methods.
  • Add integration/manual test coverage for one populated Tour post.
  • Add integration/manual test coverage for one populated Accommodation post.
  • Add integration/manual test coverage for one populated Destination post.
  • Validate generated structured data using schema.org / Google Rich Results-compatible tooling where applicable.
  • Confirm output is escaped safely and cannot break the JSON-LD script tag.
  • Document any fields intentionally mapped to additionalProperty.

Acceptance Criteria

  • Tour, Accommodation, and Destination schema output matches the approved Google Doc mappings.
  • Yoast SEO graph integration works without duplicate graph output.
  • Standalone JSON-LD output works when Yoast SEO is inactive.
  • Legacy schema output does not conflict with the new implementation.
  • Complete test entries for Tour, Accommodation, and Destination validate successfully.
  • Developer-facing comments or documentation explain mapping decisions and extension points.

Out Of Scope

  • Team schema updates; tracked in lightspeedwp/to-team.
  • Reviews schema updates; tracked in lightspeedwp/to-reviews.
  • Specials schema updates; tracked in lightspeedwp/to-specials.
  • Archive pages, static pages, blog posts, gallery/video schema, and page-selector schema unless separately approved for this release.

Open Questions

  • Are archive/static/page/blog/gallery/video/page-selector schema items part of this release or a later phase?
  • Should any admin setting changes remain in scope, or should this release focus only on schema output alignment and validation?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Fields

Priority

None yet

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions