ControlledChaos
12/7/2018 - 7:51 PM

How to use custom post type archive as front page

How to use custom post type archive as front page

<?php
/*
 * 1. Go to Settings > Permalinks and select any page as home page
 * Then use the following code
 *
 * You can add those codes in your functions.php in the theme, if you think your theme won’t be changed.
 * Otherwise mu-plugins is the best solution. To use mu-plugins, go to /wp-content/ and find the folder with name 'mu-plugins'.
 * If there is no folder in that name, then create a folder, name it 'mu-plugins', create a file inside that, 
 * give any name you like and paste the code in there. You don't need to activate that plugin. Mu-plugins means must use plugins, 
 * so it will be activated automatically always. If you use mu-plugins then add a php start tag at the beginning of the code.
 *
 * Just change the correct CPT name
 */

add_action( "pre_get_posts", "archive_page_as_front_page" );
function archive_page_as_front_page( $query ){
    if( is_admin() ) return;

    if( $query->get( 'page_id' ) == get_option( 'page_on_front' ) ){
        $query->set( 'post_type', 'SET YOUR CPT NAME' );
        $query->set( 'page_id', '' );
        $query->is_page = $query->is_singular = 0;
        $query->is_archive = $query->is_post_type_archive = 1;
    }
}