Applies to: Fundations (Free) and Fundations Pro
Fundations requires a WordPress Block Theme (Full Site Editing). Classic PHP themes are not supported. Every Fundations block, pattern, and template relies on the block rendering infrastructure that block themes provide.
What is a block theme?
A block theme uses the WordPress Site Editor and block-based templates (.html files) instead of PHP template files. Block themes became available in WordPress 5.9. If your Appearance menu shows Editor, you have a block theme. If it shows only Customize, you have a classic theme and need to switch before using Fundations.
Tested block themes
| Theme | Notes |
|---|---|
| Twenty Twenty-Four | Recommended for new installs |
| Twenty Twenty-Three | Compatible |
| Twenty Twenty-Two | Compatible |
| Greenshift (any variant) | Compatible; block-level query integration, see below |
| Any FSE-compatible block theme | Should work; test before going live |
Greenshift support
Fundations works with Greenshift, a popular block-based page builder, the same way it works with any Full Site Editing block theme. The plugin ships one set of WordPress FSE block templates (in templates/wordpress/) that render on every block theme, Greenshift included. To match Greenshift’s layout system, customize those templates directly in Appearance → Editor → Templates (see How templates work below).
No configuration is needed.
Greenshift query integration
Several Fundations blocks register Greenshift-specific query filters so they can participate in Greenshift’s query loop system. These filters are always registered and take effect whenever Greenshift’s query blocks are used:
| Hook | Priority | Purpose |
|---|---|---|
gspb_module_args_query | 999 | Passes Fundations query arguments into Greenshift query modules |
gspb_query_block_args | 999 | Filters query arguments for Greenshift query blocks |
gspb_module_args_query_id | 999 | Associates query arguments with a specific Greenshift block ID |
How templates work
Fundations registers two block templates:
| Template slug | Purpose |
|---|---|
single-get_fund_action | Individual fundraiser page |
archive-get_fund_action | Fundraiser archive / browse page |
These templates appear in Appearance → Editor → Templates with the label Fundations as the source. You can edit them there like any other block template.
Template priority
Theme templates always take priority over plugin templates. If your active theme already contains a template file named single-get_fund_action.html or archive-get_fund_action.html, the theme template is used and the plugin template is ignored. This is standard WordPress template hierarchy behavior.
To confirm which source is active, go to Appearance → Editor → Templates, find the Fundations templates, and check that the source shows Plugin rather than Theme.
Customizing templates
To customize a Fundations template without it being overwritten:
- Go to Appearance → Editor → Templates
- Find the template (for example, Single Fundations)
- Click on it to open it in the Site Editor
- Make your changes
- Click Save
Once saved from the Site Editor, your customized version is stored in the database and the plugin template is no longer used for that slot.
Switching to a block theme
If you are currently on a classic theme:
- Go to Appearance → Themes → Add New Theme
- Filter by Full Site Editing (or search for “Twenty Twenty-Four”)
- Install and activate the block theme
- Return to Appearance → Editor to verify the Site Editor is accessible
- Proceed with the Installation & Setup steps
You can preview a block theme before activating it to verify your existing content still looks correct.
What you cannot do
- Use Fundations with a classic (non-block) theme. The plugin checks
wp_is_block_theme()at init and will not register templates on classic themes. - Use Fundations with hybrid themes that add partial FSE support unless the
wp_is_block_theme()function returnstruefor them. - Override templates by placing PHP template files in your theme. All Fundations templates are block-based
.htmlfiles.
Troubleshooting
Templates not showing in the Site Editor. Confirm wp_is_block_theme() returns true for your active theme. Install and activate a known block theme such as Twenty Twenty-Four, then re-check. If templates still do not appear, deactivate and reactivate Fundations.
Greenshift layout looks different from the rest of your site. Fundations no longer ships Greenshift-specific templates; every theme uses the same WordPress FSE block templates. Open Appearance → Editor → Templates, find the Fundations templates, and edit them with Greenshift’s layout blocks to match your design.
Theme template is overriding the plugin template. This is expected behavior. Either edit the template directly in the Site Editor to replace the theme version, or delete the theme template file from your theme folder if you have access to it.
Developer reference
Hooks related to templates and post type registration
| Hook | Type | Signature | Purpose |
|---|---|---|---|
get_fund_block_template | Filter | apply_filters( 'get_fund_block_template', array() ) | Override the default block template assigned to new Fundation posts in the block editor. Return an array of block arrays. |
get_fund_block_template_lock | Filter | apply_filters( 'get_fund_block_template_lock', false ) | Control whether the editor template is locked. Accepts false, 'all', 'insert', or 'contentOnly'. |
get_fund_cpt_args | Filter | apply_filters( 'get_fund_cpt_args', $args ) | Modify the full register_post_type() arguments array for get_fund_action before registration. |
get_fund_meta_fields_registered | Action | do_action( 'get_fund_meta_fields_registered' ) | Fires after all get_fund_action meta fields are registered via register_meta(). Use this to register additional meta fields that follow the same schema. |
Locking the block template
// Prevent editors from removing blocks from the template.
add_filter( 'get_fund_block_template_lock', function() {
return 'all';
} );
Overriding the default post template
// Add a custom block at the top of every new Fundation post.
add_filter( 'get_fund_block_template', function( $template ) {
array_unshift( $template, array(
'blockName' => 'core/paragraph',
'attrs' => array(),
'innerContent' => array( '<p>Welcome to our fundraiser.</p>' ),
) );
return $template;
} );
WordPress core filters used internally
Fundations hooks into these WordPress core filters to register its templates. You should not need to interact with them directly, but knowing they exist helps when debugging template loading:
| Filter | Priority | Notes |
|---|---|---|
get_block_templates | 10 | Injects plugin templates into the template query |
pre_get_block_file_template | 10 | Handles direct template lookups by slug |
default_template_types | Default | Adds human-readable labels in the Site Editor |
theme_templates | 10 | Ensures plugin templates appear in the template selector |