Search redirects to index

时间:2019-04-16 作者:John Booz

我打算使用标准的WordPress搜索,但当我尝试搜索时,我使用的是索引,而不是搜索结果。搜索url似乎正确:https://example.com/blog/?s=admissions

搜索表单

<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>

搜索。php

<?php
/***显示搜索结果页面的模板**@linkhttps://developer.wordpress.org/themes/basics/template-hierarchy/#search-result * * @从1.0开始的WordPress包*@子包二十个/十七个*@版本1.0*/

get\\u 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(); ?>

对我这里缺少的东西有什么建议吗?

屏幕截图示例

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 个回复
SO网友:John Booz

问题是由于根目录中的htaccess文件引起的。

**`.htaccess`**

    DirectoryIndex start.php
这导致了所有的索引。要更改为启动的php文件。php。我的wordpress目录中不存在此文件。当我重命名索引时。php启动。php在wordpress安装的子目录中开始搜索。

我从根目录中删除了DirectoryIndex命令,并更改了start。php索引。php。Wordpress博客现在工作正常。谢谢,约翰

SO网友:Rick Hellewell

如果主题使用标准搜索过程,则需要创建子主题,然后克隆/编辑主题搜索。php文件。

如果您使用自己的搜索表单,请描述您是如何在您的网站上实现它的。

搜索表单(和结果)最好通过搜索进行编码。主题中的php模板。使用子主题可以确保任何主题更新都不会覆盖您对主题搜索所做的更改。php文件。

相关推荐

Searching for content post

我需要的“wordpress搜索”引擎只能用于帖子的内容。我在寻找一些解决方案,但“wordpress搜索”引擎总是只按帖子标题显示结果。我可以修改什么,或者应该做什么来解决此问题?谢谢你的帮助!