Ways to have multiple front-page.php templates that can be swapped out?

One way is to have a single front-page.php and then using get_template_part(), to show different content based on user choice. Rough code: get_header(); $layout = get_option( ‘front_page_layout’, ‘default’ ); get_template_part( ‘front-page’, $layout ); get_footer(); After that you need to create a file for every layout, they should be called, something like: front-page-one.php front-page-two.php front-page-three.php front-page-default.php … Read more

How do I fetch the static front page using the REST API?

We could implement our own endpoint: https://example.tld/wpse/v1/frontpage Here’s a simple demo (PHP 5.4+): <?php /** * Plugin Name: WPSE – Static Frontpage Rest Endpoint */ namespace WPSE\RestAPI\Frontpage; \add_action( ‘rest_api_init’, function() { \register_rest_route( ‘wpse/v1’, ‘/frontpage/’, [ ‘methods’ => ‘GET’, ‘callback’ => __NAMESPACE__.’\rest_results’ ] ); } ); function rest_results( $request ) { // Get the ID of … Read more

is_front_page() malfunction?

Just speculation, but I wonder if you’re running into an anonymous function problem. Anonymous functions are allowed in WP, and usually work fine (presuming updated PHP), but, if you search around you’ll find reports of suspected bugs or at least of unexpected behavior. For that matter, I’m not sure that I’ve ever seen an anonymous … Read more

Programmatically set page_on_front

get_page_by_title() returns an object. Use $homepage->ID. You should also check if you really got a usable return value: $homepage = get_page_by_title( ‘Front Page’ ); if ( $homepage ) { update_option( ‘page_on_front’, $homepage->ID ); update_option( ‘show_on_front’, ‘page’ ); }