How to display search results in search.php

get_search_query() returns only the string that the user searched for. To display the search results, you’ll need to do some more work.

The search results will be in $wp_query, and you can manipulate it using The Loop (like any other page).

The following code is adapted from WordPress’s own Twenty Twenty theme‘s index.php file, and can be adapted for your theme’s search.php file.

if ( is_search() ) {
        global $wp_query;

        $archive_title = sprintf(
                '%1$s %2$s',
                '<span class="color-accent">' . __( 'Search:', 'twentytwenty' ) . '</span>',
                '&ldquo;' . get_search_query() . '&rdquo;'
        );

        if ( $wp_query->found_posts ) {
                $archive_subtitle = sprintf(
                        /* translators: %s: Number of search results. */
                        _n(
                                'We found %s result for your search.',
                                'We found %s results for your search.',
                                $wp_query->found_posts,
                                'twentytwenty'
                        ),
                        number_format_i18n( $wp_query->found_posts )
                );
        } else {
                $archive_subtitle = __( 'We could not find any results for your search. You can give it another try through the search form below.', 'twentytwenty' );
        }
}

if ( have_posts() ) {

        $i = 0;

        while ( have_posts() ) {
                $i++;
                if ( $i > 1 ) {
                        echo '<hr class="post-separator styled-separator is-style-wide section-inner" aria-hidden="true" />';
                }
                the_post();

                get_template_part( 'template-parts/content', get_post_type() );

        }
    }