0

I am tying to use the standard WordPress search, but when I attempted to search I am taking to an index instead of the search results. The search url seems correct: https://example.com/blog/?s=admissions

Search form

<form role="search" method="get" class="search-form" action="https://example.com/blog/">
<label for="search-form-5cb5f4940c0aa">
    <span class="screen-reader-text">Search for:</span>
</label>
<input type="search" id="search-form-5cb5f4940c0aa" class="search-field" placeholder="Search &hellip;" value="" name="s" />
<button type="submit" class="search-submit"><svg class="icon icon-search" aria-hidden="true" role="img"> <use href="#icon-search" xlink:href="#icon-search"></use> </svg><span class="screen-reader-text">Search</span></button>

Search.php

<?php

/** * The template for displaying search results pages * * @link https://developer.wordpress.org/themes/basics/template-hierarchy/#search-result * * @package WordPress * @subpackage Twenty_Seventeen * @since 1.0 * @version 1.0 */

get_header(); ?>

<header class="page-header">
    <?php if ( have_posts() ) : ?>
        <h1 class="page-title"><?php printf( __( 'Search Results for: %s', 'twentyseventeen' ), '<span>' . get_search_query() . '</span>' ); ?></h1>
    <?php else : ?>
        <h1 class="page-title"><?php _e( 'Nothing Found', 'twentyseventeen' ); ?></h1>
    <?php endif; ?>
</header><!-- .page-header -->

<div id="primary" class="content-area">
    <main id="main" class="site-main" role="main">

    <?php
    if ( have_posts() ) :
        /* Start the Loop */
        while ( have_posts() ) : the_post();

            /**
             * Run the loop for the search to output the results.
             * If you want to overload this in a child theme then include a file
             * called content-search.php and that will be used instead.
             */
            get_template_part( 'template-parts/post/content', 'excerpt' );

        endwhile; // End of the loop.

        the_posts_pagination( array(
            'prev_text' => twentyseventeen_get_svg( array( 'icon' => 'arrow-left' ) ) . '<span class="screen-reader-text">' . __( 'Previous page', 'twentyseventeen' ) . '</span>',
            'next_text' => '<span class="screen-reader-text">' . __( 'Next page', 'twentyseventeen' ) . '</span>' . twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ),
            'before_page_number' => '<span class="meta-nav screen-reader-text">' . __( 'Page', 'twentyseventeen' ) . ' </span>',
        ) );

    else : ?>

        <p><?php _e( 'Sorry, but nothing matched your search terms. Please try again with some different keywords.', 'twentyseventeen' ); ?></p>
        <?php
            get_search_form();

    endif;
    ?>

    </main><!-- #main -->
</div><!-- #primary -->
<?php get_sidebar(); ?>

Any suggestions on what I am missing here?

Screenshot examples

category page of website

directory listing of website with search parameter added

.htaccess

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
  RewriteEngine On 
  RewriteBase /blog/ 
  RewriteRule ^index\.php$ - [L] 
  RewriteCond %{REQUEST_FILENAME} !-f 
  RewriteCond %{REQUEST_FILENAME} !-d 
  RewriteRule . /blog/index.php [L] 
</IfModule> 
# END WordPress
2
  • Hi John! This sounds like a server configuration issue. Can you provide a copy of your htaccess or nginx file? Commented Apr 16, 2019 at 16:13
  • # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /blog/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /blog/index.php [L] </IfModule> # END WordPress
    – John Booz
    Commented Apr 17, 2019 at 1:15

2 Answers 2

0

The problem was due to htaccess file that was in the root directory.

**`.htaccess`**

    DirectoryIndex start.php

This was causing all of the index.php files to be changed to start.php. This filr did not exist in my wordpress directory. When I renamed the index.php to start.php in the wordpress installed sub directory the search started to work.

I removed the DirectoryIndex command from the root directory and changed start.php to index.php. Wordpress blog is now working correctly. Thanks, John

-1

If your theme is using the standard searching process, then you need to create a Child Theme and then clone/edit the themes search.php file.

If you are using your own search form, then please describe how you are implementing it on your site.

Search forms (and results) are best coded through the search.php template in your theme. Using a Child Theme makes sure that any theme updates don't overwrite changes you make to the theme's search.php file.

5
  • I am using the twentyseventeen theme and have customized various pages to have similar style and layout as the rest of my website. I have copied the standard search.php and the searchform.php into the twentyseveteen directories. What other details do you need?
    – John Booz
    Commented Apr 17, 2019 at 1:33
  • Are you using a Child Theme of twentyseventeen? Or modifying the original code of twentyseventeen theme. An update of the theme will overwrite your changes if you don't use Child Theme. You should not modify the original theme code. You would copy the search.php (and other templates) from the 'parent' theme into your child theme, and then only modify the files in the child theme's folder. If you have added code to the search.php (or other files) in the child theme folder, then that code would be helpful to see. Downvoting the answer because I asked for more info is not kind (if it was you). Commented Apr 18, 2019 at 0:20
  • I do not think I down voted your answer. I do not have more than 15 reputation points, so my votes would not display publicly.
    – John Booz
    Commented Apr 19, 2019 at 2:50
  • Ah...sorry for 'jumping to confusion'. Hope you are able to find your solution. Commented Apr 19, 2019 at 18:20
  • I renamed the modified theme and downloaded a clean version of the twenty seventeen theme and there was no change. I do not think this is a theme issue.
    – John Booz
    Commented Apr 21, 2019 at 2:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.