DOCS

Theme compatibility

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

ThemeNotes
Twenty Twenty-FourRecommended for new installs
Twenty Twenty-ThreeCompatible
Twenty Twenty-TwoCompatible
Greenshift (any variant)Compatible; block-level query integration, see below
Any FSE-compatible block themeShould 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:

HookPriorityPurpose
gspb_module_args_query999Passes Fundations query arguments into Greenshift query modules
gspb_query_block_args999Filters query arguments for Greenshift query blocks
gspb_module_args_query_id999Associates query arguments with a specific Greenshift block ID

How templates work

Fundations registers two block templates:

Template slugPurpose
single-get_fund_actionIndividual fundraiser page
archive-get_fund_actionFundraiser 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:

  1. Go to Appearance → Editor → Templates
  2. Find the template (for example, Single Fundations)
  3. Click on it to open it in the Site Editor
  4. Make your changes
  5. 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:

  1. Go to Appearance → Themes → Add New Theme
  2. Filter by Full Site Editing (or search for “Twenty Twenty-Four”)
  3. Install and activate the block theme
  4. Return to Appearance → Editor to verify the Site Editor is accessible
  5. 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 returns true for them.
  • Override templates by placing PHP template files in your theme. All Fundations templates are block-based .html files.

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

HookTypeSignaturePurpose
get_fund_block_templateFilterapply_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_lockFilterapply_filters( 'get_fund_block_template_lock', false )Control whether the editor template is locked. Accepts false, 'all', 'insert', or 'contentOnly'.
get_fund_cpt_argsFilterapply_filters( 'get_fund_cpt_args', $args )Modify the full register_post_type() arguments array for get_fund_action before registration.
get_fund_meta_fields_registeredActiondo_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:

FilterPriorityNotes
get_block_templates10Injects plugin templates into the template query
pre_get_block_file_template10Handles direct template lookups by slug
default_template_typesDefaultAdds human-readable labels in the Site Editor
theme_templates10Ensures plugin templates appear in the template selector