Skip to content

Theme Compatibility

FluentCommunity renders its own full-page HTML rather than going through your theme's templates. There are two separate templates, and they are chosen by which page you are on, not by a setting:

PageTemplateRendered from
The portal (/portal and everything under it)app/Views/portal_page.phpPortalHandler
Login, signup, password reset, invitation acceptanceapp/Views/headless_page.phpModules\Auth\AuthModdule::viewAuthPage()

This matters because the two templates expose different hooks, and a callback registered on the wrong set never fires.

Portal pages

The portal always renders portal_page.php. Its hook points are:

This is where analytics, custom CSS and SEO metadata belong.

php
add_action('fluent_community/portal_head', function () {
    ?>
    <meta name="robots" content="index,follow" />
    <?php
});

fluent_community/portal_page_headless controls one thing only: whether portal_page.php calls wp_head() and wp_footer(). It does not switch templates.

Modules\FeaturesHandler sets it to true by default, so out of the box the portal does not run wp_head()/wp_footer() — which is why theme and plugin assets do not appear there.

Return false to bring them back:

php
add_filter('fluent_community/portal_page_headless', '__return_false');

Expect to re-check your styling afterwards: every plugin that enqueues global CSS will now load inside the portal.

Auth screens

The login, signup, password-reset and invitation-acceptance screens render headless_page.php, which has its own hooks:

Each receives a $scope argument. Today AuthModdule is the only caller and it always passes user_registration, so the argument is currently a constant — do not branch on it expecting a portal value.

php
add_action('fluent_community/headless/head', function ($scope) {
    ?>
    <meta name="robots" content="noindex" />
    <?php
}, 10, 1);

Full hook reference

Every hook named here has a generated entry with its parameters, call sites and an example — see Rendering & Theming actions and Rendering & Theming filters.

FluentCommunity developer documentation