Guide

Taxonomies architecture

Each taxonomy class under includes/ registers its object and post-type list. class-research-teams.php owns rewrite rules and permalink prefixes.

Taxonomy inventory

ClassSlugNotes
Research_Teamsresearch-teamsURL prefix + primary term
FormatsformatsHierarchical; sitemap + primary term
Topic_CategorycategoryRelabeled Topics; /topic/ base
Regions_Countriesregions-countriesHierarchical regions/countries
LanguageslanguagesContent language
Mode_Of_Analysismode-of-analysisMethodology
Fund_Pools_fund_poolPrivate funder metadata
Decoded_Categorydecoded-categoryDecoded only

Legacy /category//topic/ 301 lives in vip-config/server-redirects.php (loaded pre-WordPress via platform allowlist).

Research team rewrites

Incoming URLs match a team slug, then the post-type pattern. Captured slugs that are not valid research team terms are dropped so WordPress can 404 normally.

Excluded segments include post type slugs, taxonomy bases, WordPress core paths, and hardcoded values such as decoded and pew-research-center.

Flow

Team-prefixed URL

3 relationships
Invalid team slugs are removed before the main query runs.

modify_post_permalinks prefixes the primary research team slug for enabled post types when:

  • Current blog ID is not 1
  • Post is publish
  • disable_research_team_permalink is not set
  • A numeric primary term ID exists via get_primary_term_id()

Primary term resolution requires prc-schema-seo.

Filterable config

FilterPurpose
prc_research_teams_rewrite_configPer-post-type slug patterns and query strings
prc_research_teams_excluded_url_slugsExtra excluded first segments
prc_taxonomy_{taxonomy}_post_typesPost types for a taxonomy
prc_sitemap_supported_taxonomiesSitemap opt-in
prc_schema_seo_primary_term_taxonomiesPrimary-term capable taxonomies

Was this helpful?