Use a different template/theme if mobile only on home page

I have looked around and can not find anything that fully works for my issue: I want to be able to set the home page template on the fly when a user is visiting from a mobile phone but not a tablet. I already have this check in place.

However I am able to change the whole theme on all pages when a visitor is on a phone but there does not seem to be a way to only change the template/theme on the home page.

Read More

Due to the only way I know for sure is checking is_front_page() which does not exist when you hook to change the theme. I also want to try to do this without redirecting to another page if possible.

Related posts

Leave a Reply

4 comments

  1. Or you can use another way, may be bit long but will give you full control how you want to drive your site/template.

    Make responsive CSS.
    Call desktop styles in tablet view/resolution with media queries and for the smaller device, set styles as you want.

    This will give you control in a way that you can have totally different layout in portrait and landscape view of a single device.

  2. You could use template_include with wp_is_mobile

    add_filter( 'template_include', 'mobile_front_page_template', 99 );
    
    function mobile_front_page_template( $template ) {
    
        if ( wp_is_mobile() && is_front_page() ) {
            $new_template = locate_template( array( 'mobile-front-page-template.php' ) );
            if ( '' != $new_template ) {
                return $new_template ;
            }
        }
    
        return $template;
    }
    

    Then you could use another conditional tag to exclude tablets.