The controlled terms that drive filtering, browse-by pages, and related content. Topic and Audience are shared by both articles and products, so a blog post and a product can surface each other.
| Dimension | Insights (blog) | Products / resources | Notes |
|---|---|---|---|
| Topic | Yes (category) | Yes | Blog categories are the Topic terms. Shared. |
| Audience | Yes | Yes | Shared. Powers browse-by-audience. |
| Partner | Yes | Yes (one per product) | Ties content to the partner behind it. |
| Resource Type | No | Yes | Product attribute only. |
| Format | No | Yes | How the resource is delivered. |
| Age / Grade | Optional | Yes | The learner the resource serves. |
| Cost (Free / Paid) | No | Derived | Read from product price at query time, not an editor term. |
Controlled vocabulary only in v1, no freeform tags. Terms are provisional pending final approval.
Dev note · PartnersPartners stay on the WooCommerce Brand taxonomy with ACF fields on the term (logo, display mode, external URL, description) that drive both the partner modal and the full partner page from one place.
Used by articles (as categories) and products.
Dev note · TopicRegistered as a custom taxonomy on both products and posts (not a Woo product category), so one term tags an article and a product together; archive at /topic/{term}.
Used by articles and products. The four browse-by landing pages (Families, Educators, Administrators, Policymakers) group these.
Dev note · AudienceThe same shared custom taxonomy as Topic; its archive at /for/{term} powers the browse-by-audience pages.
Products and resources only.
Dev note · Product axesResource Type, Format, and Age are product-only taxonomies. Cost (Free / Paid) is derived from the product price, never stored as a term.
Products and resources only. How it is delivered.
The learner the resource serves.
Determines the action on a product page. Cost (Free / Paid) is derived from these.
Dev note · ModeA product field that drives the call to action; WooCommerce is catalog-only, so paid items link out to KU’s uStore.
Dev note · RenderingCards are a Kadence Pro Query Loop reused as one synced pattern; term lists (pills, partner carousel) use small shortcodes, since query loops iterate posts, not terms.