Guide

What’s New in PRC Platform 1.6 — “Helpful Hippopotamus”

Release Date: May 1, 2026 Previous Version: 1.5.3

Version 1.6 is another large release — six months of work landing, spanning more than 600 changes since 1.5.3. This release was built to launch alongside WordPress 7, which introduces native real-time collaboration and a brand-new AI infrastructure.

A Note on Timing and AI Features

WordPress 7 has been delayed to May 20, 2026. Rather than hold this release any longer, we're shipping 1.6 today with all of the new AI-powered features turned off. Everything else — the new editorial workflows, the spoken article overhaul, the chart builder upgrades, dark mode, the redesigned table block, and hundreds of fixes and polish items — ships and is ready to use today.

When WordPress 7 lands later this month, we'll flip the AI features on through a follow-up point release. Nothing you do today will need to be re-done at that time.

The complete refactor of our AI infrastructure to align with WordPress 7's new AI plugin (the WP AI SDK) is already in this release — it's just dormant. The "AI Features" panels you may see in plugin sidebars will appear empty or hidden until WordPress 7 enables them. This is expected.


The Headlines

Publish Workflows — A New Editorial Command Center

A brand-new Publish Workflows plugin gives the editorial team a unified view of everything moving through the publishing pipeline. It replaces ad-hoc tracking with a top-level Publish Workflows menu in WP Admin that contains:

  • Status Board — a drag-and-drop Kanban board showing every post in flight grouped by editorial stage: Draft → In Review → In Number Check → In Copy Edit → Scheduled → Published. Drag a card between columns to advance a post through the pipeline.
  • Calendar — a full-month publishing calendar. Drag a draft or scheduled post to a new day or time to reschedule it. Each editorial stage has its own color and can be toggled on/off using the legend.
  • Posts in Production — a dashboard widget on the WP Admin home screen, grouped by status, showing only the posts you're actively watching.

Watchers and Notifications

Every post now has a Watchers panel in the document sidebar (formerly "Notifications"). Add yourself or a colleague to a post to receive email and Slack DMs whenever the post changes editorial stage or is published.

  • You're auto-added as a watcher whenever you open a post for editing.
  • If you remove yourself, the system remembers — you won't be auto-added again. To rejoin, add yourself back manually.
  • Slack DMs require a prc_slack_user_id user-meta value (set up by your administrator).

Filtering the Status Board

Two new filters make the Status Board easier to use as the editorial calendar grows:

  • Watching only — show only posts you're watching
  • Research team — filter by the research team taxonomy

Pre-Publish Checks

Five new pre-publish checks now run automatically when you click Publish:

  • About this research — every post must include a "core/details" block titled "About this research"
  • Future scheduling — posts must be scheduled at least one hour in the future (live posts are exempt)
  • Paragraph count — at least two non-empty paragraphs are required
  • Internal links — at least one internal link to another PRC URL is required
  • Image alt text — every image in a post or page must have alt text

These checks appear in the Publishing Checklist before you can complete publishing. Each one explains how to fix the issue.

Workflow Status Badge

The current editorial stage now appears as a clickable badge in the Status & visibility panel of the post editor. Click it to change stages without leaving the post.


Spoken Article — Rebuilt Around a Dedicated Post Type

Spoken Article (text-to-speech audio for our published research) received its biggest update since launch. Audio is now stored as its own private post type, separate from the parent article. This makes the workflow cleaner and prevents accidental loss of audio when an article is edited.

What this means for editors:

  • A separate audio editor. Open the parent article and you'll see a Spoken Article panel in the document sidebar. From there you can create the linked audio post, navigate to it, or remove it entirely.
  • The audio editor is focused. Inside the spoken-article post you'll find only the transcript, voice picker, audio player, and an AI Generation panel — no clutter from the article body.
  • Target audio length is configurable. A slider in the AI Generation panel lets you target an audio length between 1 and 8 minutes (in half-minute steps). The text preparation step adjusts content length to match.
  • Real-time collaboration locking. If two editors open the same spoken article at once and one starts generating audio, the other sees a banner: "[Name] is generating spoken article audio. Try again when they finish." The Generate button is disabled for the second editor until the first finishes. Locks auto-expire after 10 minutes if a browser is closed mid-generation.
  • Player visibility per article. A toggle in the parent article's Spoken Article panel lets editors hide or show the player button on a specific article without deleting the audio.

Interstitial Ads

A new system supports mid-playback ads in spoken articles. Each article can be configured with its own interstitial through a new panel in the spoken-article editor, and global defaults can be set in Spoken Article → Interstitial Ads in WP Admin.

Disclaimer

Every transcript now begins with: "This audio was generated using artificial intelligence." This appears automatically — no editor action required.


Public Post Preview — Per-Post Expiration

A new in-house version of the public-post-preview plugin replaces the upstream version. Default preview links still expire after 14 days, but editors can now override the expiration on individual posts from the document sidebar — useful for sending long-lived previews to external partners. A maximum allowable expiration is enforced by the platform.


Quizzes

YouTube Playables

Two interactive quiz apps are now available on YouTube's gaming platform:

  • Political Typology — find out which of nine political groups you align with
  • Religious Typology — religious typology quiz adapted for YouTube

These ship as single-file, sandbox-compliant HTML bundles. Save/load state and scoring are all integrated with YouTube's game SDK.

Political Typology Quiz 2026

The on-site Political Typology Quiz has been rebuilt against the 2026 typology data. The new version ships as a separate plugin (prc-quiz-political-typology-2026) so the previous version can keep running unchanged on archived content.

  • All copy, group labels, descriptions, and share strings updated to match the 2026 nine-group typology.
  • Share buttons (Bluesky, X, Facebook, LinkedIn) now read from the correct quiz state, fixing a runtime error in the older share action.

Schema SEO

Every post now gets a server-side QR code generated for its short link, with the PRC symbol centered in the middle of the code. The QR code:

  • Is generated automatically and stored in the media library as a PNG attachment linked to the post
  • Has a Short Link QR panel in the Search and Social sidebar where you can preview and regenerate it
  • Appears alongside the short link in Slack publish notifications, so reviewers can scan it from their phones

Parse.ly Integration

PRC's Parse.ly analytics integration is now wired up through the official wp-parsely plugin. PRC content types are mapped to the right Parse.ly section, the modified date (not publish date) is used for dateModified, and Parse.ly metadata is enriched with PRC post data. Parse.ly is now also enabled on local development environments to make QA easier.

Open Graph Defaults

Open Graph title and description no longer fall back to the SEO title and meta description when unset. Instead they fall back to the post title (always present) and the post excerpt (empty when there isn't one). This gives editors more deliberate control over what gets shared on social.

Organization Branding

Site-wide organization branding (logo, name, social profiles) is now exposed as a filter so individual sites can override defaults without code changes.


Chart Builder

Scheduled Chart References

The Synced Chart block can now reference scheduled (future-dated) chart entities, not just published ones. This means teams can prepare charts ahead of time and link to them in upcoming articles before the publish date.

Better Export Filenames

PNG and CSV exports from a chart now prefer the chart's design_slug when set, producing more meaningful download filenames (e.g., religion-by-region-2026.csv instead of a generic chart.csv). Punctuation that causes filesystem issues is stripped automatically.

Editor Improvements

  • Custom tooltips now resolve correctly across all chart types and on treemaps.
  • Net value labels in stacked-bar comparisons received styling improvements: positioning, font size, and color are now configurable.
  • Dot plot labels trigger reliably on hover thanks to a new voronoi targeting system.
  • Treemaps now sort and label correctly.
  • Synced Chart blocks now support alignment options (wide, full, etc.).

Table Block

The Table block received the most substantial set of feature additions in this release, focused on power-user data workflows.

  • Drag-and-drop CSV import. Drop a CSV file directly onto the table block in the editor to import it.
  • Column data types. Each column has an explicit type — string, number, percentage — that drives sorting and rendering.
  • Decimal rounding. Set per-column or per-cell decimal precision. An underscore notation (_2 for 2 decimal places) overrides precision on individual cells.
  • Context menu. Right-click any cell to insert/delete columns or rows, set the column type, or apply rounding.
  • Inline validation warnings. When data violates the declared column type, a warning appears in a dedicated toolbar section so it doesn't interfere with editing.

Block Library Highlights

  • Auto-anchor headings. H3 and H4 headings now generate id anchors automatically from their text content. H2s and lower headings are unchanged.
  • Entity-as-iframe expansion. External entities can now be embedded inside core/accordion, core/details, core/tabs, and prc-block/dialog — not just the main embed block.
  • Core Tabs alignment with Gutenberg 22.8+. Tabs now properly handle mobile dropdown behavior.
  • Breadcrumbs block. A new block for hierarchical content with smart fallback to the primary category.
  • Button "has-icon" style. A unified has-icon style on core/button with a searchable Font Awesome Pro icon picker (library, icon, position, color). The 11 separate icon__* block styles are hidden from the picker but remain registered so existing buttons continue to render. Existing buttons are migrated to the new style automatically the next time you edit them.
  • Mailchimp form pattern overrides. Mailchimp form blocks now support per-pattern overrides for the audience interest, with a toolbar dropdown for segment selection.

Dark Mode

Initial dark mode work continues:

  • Dark Mode Preview toggle now ships with the PRC Design System theme. Use the Preview menu in the editor (or Ctrl+Shift+D) to toggle dark mode on/off while previewing.
  • View transitions updated for smoother dark mode switches.
  • Quiz Builder, table, and democracy icons received dark mode styling fixes.
  • Pew-Knight dark logo variant is now scoped to logged-in users only — anonymous visitors never see the dark logo, even on dark-mode browsers.

Smarter Responsive Images

The way <img> tags get their srcset (the list of image sizes the browser can choose from) has been completely rewritten. Instead of generating dozens of candidate sizes per image, every rendered image now produces a small, deliberate set targeted at the platform's three layout breakpoints:

  • Mobile: 480w / 960w (1x and 2x)
  • Tablet: 782w / 1564w
  • Desktop: 1200w / 1600w (with 1920w/2400w added for full-width images)

The original image width is always retained as the largest candidate so retina displays still get an exact match. This significantly reduces the number of image variants that get generated and indexed, lowering crawl budget and CDN load.

This change is invisible to editors — images continue to look the same — but page weight and crawler load drop noticeably.


Wiki & Help Center

  • Wiki got taxonomy improvements and CLI tools for better content organization.
  • Help Center support form has been streamlined: type selection has been removed and defaulted to "Bug" for all new submissions.
  • The Local News Habits interactive dropdown styling was fixed.

Bylines

A long-standing bug where bylines silently failed to render on short-read, decoded, and other post-like-types has been fixed. The byline editor toggle now works correctly on every supported post type, and bylines render reliably regardless of which order plugins load.


Revisions

  • Future Revision badges in the WP Admin posts list — fork posts show "Future Revision" and parent posts show "Has Future Revision" so editors can see at a glance which posts have pending revisions.
  • Numerous fixes to public version URLs and metadata accuracy.

Other Improvements Worth Calling Out

  • Schema sitemap fix. A bug introduced in 1.5 had been silently corrupting daily sitemaps since March 6, 2026 — every daily sitemap was being saved as empty XML. This is fixed in 1.6, and a new CLI command (wp prc sitemap generate-sitemap-for-date-range) is included to backfill the missing dates. This is the most important migration to run after this release ships (see WP-CLI Migrations below).
  • Public-facing site goes through pewresearch.org cleanly under wp-env and Playground. Plugins now boot without VIP-specific symbols, making local development much smoother.
  • Action Scheduler cleanup. Several scheduled jobs were renamed and reassigned to weekly cadences instead of midnight cadences.

Behind the Scenes

These changes don't affect editors directly but make the platform faster, more maintainable, and easier to release.

Platform Core Dissolution

The historically-monolithic prc-platform-core plugin has been broken up. Most of its responsibilities have moved into focused plugins (prc-scripts, prc-firebase, prc-content-transformer, prc-publish-workflows, etc.) or into client-mu-plugins/ (Mailchimp, AI configuration, WP Admin customization, the platform ASCII version comment).

Modern Build & Release Pipeline

The monorepo build system has been rebuilt:

  • Lerna → Turborepo + Changesets. Every workspace now versions independently. PRs require a changeset summary file (caught by CI). Releases now produce per-package CHANGELOGs.
  • Centralized wp-env, Playground, and Playwright at the repo root. A single configuration mounts every PRC plugin, instead of dozens of per-plugin configs.
  • Per-plugin Composer dependencies with Jetpack Autoloader for runtime version selection across plugins that share PHP libraries.
  • Trunk-integration / release-branch model with automatic backports — work merges to trunk, and the active release branch (release/1.6 for this release) gets cherry-picked changes via a backport bot.

New Internal Composer Packages

Three platform libraries have been extracted into their own Composer packages so they can be reused outside the monorepo:

  • prc/block-utils — 16 shared utility functions (device detection, URL helpers, country lists, error logging)
  • prc/url-helper — URL parsing and manipulation
  • prc/term-data-store — taxonomy term-to-post mapping

WordPress Plugin Updates

  • Gutenberg → 23.0.1 (up from 22.6)
  • WP AI plugin → 0.8.0 (the upcoming WP 7 AI SDK foundation)
  • Google Site Kit → 1.177.0
  • Nelio A/B Testing → 8.3.5
  • Enable Media Replace → 4.1.9

PHP 8.4 Alignment

Composer is now pinned to PHP 8.4 across the platform.

Native Rewrite Hooks

Every plugin that previously used the custom prc_platform_rewrite_* filter chain has been migrated to native WordPress rewrite_rules_array, query_vars, and init / add_rewrite_rule hooks. This eliminates a custom abstraction layer and makes rewrite debugging much easier.

Media Visibility Taxonomy

Media-library queries no longer rely on three negative meta_query clauses against wp_postmeta to filter out hidden attachments (chart builder images, spoken-article audio, etc.). A new private _media_visibility taxonomy is used instead, backed by an indexed tax_query. This significantly speeds up the media library on sites with large attachment counts. A WP-CLI migration is required to move existing flagged attachments over (see below).


What's Coming When WordPress 7 Lands (May 20)

The AI infrastructure refactor is shipped in this release but switched off. When WP 7 lands and we flip the switch in a follow-up point release, these features become available:

  • PRC Social Builder — a complete social package authoring workflow inside the editor (threads, messages, stories) with one-click AI generation for every content type and direct publishing to Hootsuite. The plugin and its UI ship in 1.6 — only the AI generation buttons stay disabled.
  • PRC Content Transformer — an AI middleware layer that transforms posts into provider-specific formats (plain text, Apple News, email HTML).
  • AI-powered SEO suggestions in the Search and Social sidebar (suggest title, description, social text).
  • AI-powered chart generation from natural language prompts in Chart Builder.
  • AI-powered spoken article generation with model preference for Claude / Gemini.
  • AI-powered related posts suggestions.
  • AI-powered alt text and image generation.
  • MCP (Model Context Protocol) adapter — exposes PRC abilities to AI clients.
  • Per-plugin API key architecture. PRC plugins that call external APIs directly (ElevenLabs for spoken article, etc.) now use PRC_PLATFORM_*-prefixed constants instead of a single global key. This shipped in 1.6 and is already in effect for non-AI services.

The transition will be invisible to editors — the AI panels will simply start appearing where they belong once WP 7 ships.


WP-CLI Migrations

Run these commands on production after this release deploys, in roughly this order. Run each with --dry-run=false (or the equivalent flag noted) when you're ready to commit. All commands print progress; you can stop and resume any of them.

1. Backfill Missing Sitemap XML (HIGH PRIORITY)

The schema sitemap fix is included in this release, but every daily sitemap from 2026-03-06 onward was saved with empty XML. Run this immediately after deployment to recover the missing sitemaps:

# Clear all stale sitemap caches
wp prc sitemap clear-cache

# Rebuild every affected date
wp prc sitemap generate-sitemap-for-date-range \
  --start=2026-03-06 \
  --end=$(date +%Y-%m-%d) \
  --clear-cache

# Sync the indexed URL counter shown in the admin UI
wp prc sitemap recount-indexed-posts

Verify by spot-checking a known date:

curl -s 'https://alpha.pewresearch.org/pewresearch-org/sitemap-posts.xml?yyyy=2026&mm=03&dd=11' | grep -c '<url>'

Should return a non-zero count.

2. Migrate Hidden Media Flags to the New Taxonomy

Move existing chart-builder images, spoken-article audio, and other "hidden from media library" attachments off legacy post meta and onto the new _media_visibility taxonomy:

# Preview what would be migrated (dry run by default)
wp prc media-visibility migrate

# Run the migration for real
wp prc media-visibility migrate --dry-run=false

# Resume from a specific attachment ID if interrupted
wp prc media-visibility migrate --dry-run=false --start-id=12345

# Confirm migration is complete (should report 0 remaining)
wp prc media-visibility verify

Once migrated, the media library will be noticeably faster on sites with large attachment counts.

3. Migrate sub_headline to sub_title

The legacy sub_headline post-meta key has been renamed to sub_title across the platform. Migrate any posts that still have data on the old key:

# Preview how many posts would be migrated (dry run by default)
wp prc block-library migrate-sub-headline

# Run the migration for real
wp prc block-library migrate-sub-headline --dry-run=false

Safe to re-run — only touches posts where sub_title is absent or empty, so already-migrated posts are skipped.

4. (Reference) Existing Commands That Stayed the Same

The following commands moved to new plugin homes in this release, but the command names and behavior are unchanged. If you have any scheduled tasks or runbooks referencing them, no edits are needed:

  • wp prc templates bulk-update — moved from prc-platform-core to prc-post-like-types
  • wp prc seo migrate-* and wp prc seo compare-* — Yoast → prc-schema-seo migration tools (still available from 1.5)
  • wp prc pdf-extraction * — topline OCR commands (unchanged)

Migration Notes

Public Post Preview

The upstream public-post-preview plugin has been replaced by prc-public-post-preview. Existing preview URLs remain valid — no data migration is required. The new per-post expiration UI appears in the document sidebar going forward.

sub_headline → sub_title

The sub_headline post-meta key has been renamed to sub_title across the platform. Run wp prc block-library migrate-sub-headline --dry-run=false (see WP-CLI Migrations above) to backfill the new key on existing posts. Any external integrations referencing sub_headline directly should update to sub_title.

Custom AI Experiment Classes

If any custom code extends Abstract_Experiment directly, update it to extend Abstract_Feature. The old base class continues to work in this release for backward compatibility but will be removed in a future release.

Hidden Media Meta Keys

After running the wp prc media-visibility migrate command, the legacy meta keys (prc_hide_media, isChartBuilderImage, isSpokenArticleAudio) are still written for new attachments by JavaScript producers, but a hook now auto-assigns the new taxonomy term so producers don't need to change. The legacy meta keys themselves can be cleaned up in a future release once we're confident nothing reads them.


Full Changelog: v1.5.3…v1.6.0

Was this helpful?