Each taxonomy class under includes/ registers its object and post-type list. class-research-teams.php owns rewrite rules and permalink prefixes.
Taxonomy inventory
| Class | Slug | Notes |
|---|---|---|
Research_Teams | research-teams | URL prefix + primary term |
Formats | formats | Hierarchical; sitemap + primary term |
Topic_Category | category | Relabeled Topics; /topic/ base |
Regions_Countries | regions-countries | Hierarchical regions/countries |
Languages | languages | Content language |
Mode_Of_Analysis | mode-of-analysis | Methodology |
Fund_Pools | _fund_pool | Private funder metadata |
Decoded_Category | decoded-category | Decoded 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
3 relationships
Team-prefixed URL
Permalink generation
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_permalinkis not set- A numeric primary term ID exists via
get_primary_term_id()
Primary term resolution requires prc-schema-seo.
Filterable config
| Filter | Purpose |
|---|---|
prc_research_teams_rewrite_config | Per-post-type slug patterns and query strings |
prc_research_teams_excluded_url_slugs | Extra excluded first segments |
prc_taxonomy_{taxonomy}_post_types | Post types for a taxonomy |
prc_sitemap_supported_taxonomies | Sitemap opt-in |
prc_schema_seo_primary_term_taxonomies | Primary-term capable taxonomies |