Skip to content

Function

Get the page template for a TML action.

tml_page_template( string $template = 'page.php' )

Parameters

$template string Default 'page.php'
The page template path.

Return

string The page template path.

Source

function tml_page_template( $template = 'page.php' ) {
    // Don't stomp on block themes
    if ( ABSPATH . WPINC . '/template-canvas.php' === $template ) {
        return $template;
    }

    $action = tml_get_action();
    if ( ! $action ) {
        return $template;
    }

    $slug = $action->get_name();

    $templates = array(
        "$slug.php",
        "theme-my-login-$slug.php",
        "tml-$slug.php",
        "page-$slug.php",
        'theme-my-login.php',
        'tml.php',
        'page.php',
    );

    if ( tml_action_has_page() ) {
        $template = get_page_template_slug();
        if ( $template && 0 === validate_file( $template ) ) {
            array_unshift( $templates, $template );
        }
    }

    /**
     * Filters the template hierarchy used for TML pages.
     *
     * @since 7.0
     *
     * @param array $templates The page template hierarchy.
     */
    $templates = apply_filters( 'tml_page_templates', $templates );

    $tml_template = locate_template( $templates );
    if ( $tml_template ) {
        return $tml_template;
    }

    return $template;
}

Uses

Changelog

VersionDescription
7.0 Introduced.