Can I display custom post types in home.php or need page template?

The simple answer is “yes, you can”, but I’m pretty sure it won’t satisfy you 😉

So… How can you achieve this and show only custom posts on home.php? All you need is to use pre_get_posts hook like so:

add_action( 'pre_get_posts', 'add_custom_post_types_to_home_query' );

function add_custom_post_types_to_home_query( $query ) {
if ( is_home() && $query->is_main_query() )
    $query->set( 'post_type', array( 'book', 'movie' ) );
return $query;
}

The code above will change the main query so it shows only books and movies.