Schema Mapper
Map ACF and post fields to Schema.org JSON-LD per post type. Configurable from the WordPress admin.
by George Cook · github.com/georgehcook/schema-mapper · website
★ 1stars
0forks
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/georgehcook/schema-mapper/archive/refs/heads/main.zipA WordPress plugin that maps post and ACF fields to Schema.org structured data and outputs JSON-LD on the front end. Designed so non-developers can configure schema per post type from the WordPress admin.
Inspired by Schema Pro, but lightweight, free, and extensible via code.
What's in v0.1
- Settings page under Settings > Schema Mapper
- Per-post-type configuration: pick a schema type, map every schema field to a source (ACF field / post field / static value / permalink), optionally apply a transform
- Optional output gate: only emit schema when a chosen field matches a condition (useful for "only output for Live, not Archived")
- One schema type included out of the box: JobPosting
- Built-in transforms for JobPosting:
employment_type_map: Temp → TEMPORARY, Perm → FULL_TIME, etc.gbp_salary_range: parses "£20,000-£30,000", "£60,000+" into MonetaryAmountwork_setting: Home/Remote → TELECOMMUTEiso8601: any date string → ISO 8601
- Anonymous-employer handling: when the employer is confidential, the plugin sets the recruiter as
hiringOrganizationand puts the disambiguating description (e.g. "Independent school") on the hiring org, per Google for Jobs policy - Output appears alongside any existing Yoast schema, not instead of it
- Works with or without ACF (degrades gracefully if ACF is not active)
Install
Drop the folder into wp-content/plugins/schema-mapper and activate. Or install via Git Updater (the plugin header declares its GitHub URI).
Configure
- Go to Settings > Schema Mapper
- Find your post type, enable schema output, pick Job Posting (or another type as more are added)
- Save. The page reloads and the field mapping table appears.
- Map each schema field to either an ACF field, a post field (post_title, post_content, post_date, etc.), or a static value
- For JobPosting, set the recruiter name as a Static value
- Optionally set an output condition (e.g. only output when
live_or_archive == "Live") - Save. The plugin starts outputting `