Extending

Use a child theme for CSS

Academia updates through the Plugins-style update screen, so edits to its own files are overwritten. For anything more than a colour tweak — which belongs in Appearance → Editor → Styles — use a child theme:

academia-child/
├── style.css
└── theme.json      (optional: only the values you change)
/*
Theme Name: Academia Child
Template: academia
Version: 1.0.0
*/

A child theme.json is merged over the parent's, so you only need the keys you are changing.

Filters

Courses

Filter Does
academia_course_sources Register a course source of your own
academia_course_source Force which source is used
academia_course Change a normalised course before it renders
academia_course_filter_renderer Swap the whole course browser renderer
academia_currency_symbol The symbol used when WooCommerce is not active

The renderer filter is how Academia Library adds its no-reload browser. It is also the right place to put your own, and it is deliberately a filter rather than a function you redefine — the theme owns one academia_course_filter() and swapping behaviour cannot collide with it.

Updates and privacy

Filter Does
academia_check_for_updates Return false to switch off update checks entirely
academia_update_payload Change what an update check sends
academia_library_update_payload The same, for the plugin

See Updates & privacy for exactly what is sent.

Setup

Filter Does
academia_auto_setup_front_page Return false to stop the Home/Blog pages being created on activation
academia_starter_sites Add or change starter site definitions
academia_form_providers Add a contact-form plugin to the ten recognised
academia_detected_form Override which form is rendered

Forms

A theme must not process form submissions, and Academia does not. It detects whichever form plugin is active, renders its first form, and wraps the output so the fields inherit the theme's styling without the theme knowing that plugin's class names.

Detection prefers a registered post type over a class name — plugins move their namespaces between versions, the post type does not.

What Academia deliberately does not do

  • Register a post type. Courses belong to the plugin, so changing theme never takes a catalogue with it.
  • Process a form. That is a plugin's job, and a theme doing it means your submissions stop the day you switch.
  • Ship a page builder or an options panel. It is a block theme; the Site Editor is the interface.