search form redirects to home

时间:2018-06-15 作者:Dariusz

Update 案件已结案。我忘了我的函数中有kill函数。php将附件、搜索、作者、每日存档页面重定向到主页。删除了用于搜索的部件,效果良好。

很抱歉,感谢您的时间和帮助:)

我在wordpress中有一个简单的搜索表单

<form role="search" method="get" class="search-form" action="<?php echo home_url( \'/\' ); ?>">
  <label>
   <input type="search" class="search-field" placeholder="what are you looking for?" value="" name="s" title="enter search" />
  </label>
  <input type="submit" class="btn search-submit" value="Search" />
</form>
提交表单后,它会重定向到主页。我想把动作改成echohome_url( \'/search.php\' ); 但我得到了404。

我已经找到了。php完成。代码为

  <?php if ( have_posts() ) : ?>

            <header class="page-header">
                <h1 class="page-title"><?php printf( __( \'Search Results for: %s\'), \'<span>\' . get_search_query() . \'</span>\' ); ?></h1>
            </header>

            <?php while ( have_posts() ) : the_post(); ?>

                <?php get_template_part( \'content\'); ?>

            <?php endwhile; ?>

        <?php else : ?>

        <p>no results</p>

        <?php endif; ?>

2 个回复
最合适的回答,由SO网友:Dariusz 整理而成

我在我的函数中忘记了这一点。php我有一个kill函数,可以重定向到home。php我的搜索。我只需要从下面的函数中删除搜索

/*  Kill attachment, search, author, daily archive pages
------------------------------------------------ */
add_action(\'template_redirect\', \'bwp_template_redirect\');
function bwp_template_redirect()
{
global $wp_query, $post;

if (is_author() || is_attachment() || is_day() || is_search() || is_multi_author() )
{
  wp_redirect(get_option(\'home\'));
  exit;
}

if (is_feed())
{
    $author     = get_query_var(\'author_name\');
    $attachment = get_query_var(\'attachment\');
    $attachment = (empty($attachment)) ? get_query_var(\'attachment_id\') : $attachment;
    $day        = get_query_var(\'day\');
    $search     = get_query_var(\'s\');

    if (!empty($author) || !empty($attachment) || !empty($day) || !empty($search))
    {
        $wp_query->set_404();
        $wp_query->is_feed = false;
    }
  }
}

SO网友:Sachet Shrestha

您需要为搜索添加get\\u search\\u form()函数。php

\'。get\\u search\\u query().\');?>

            <?php get_template_part( \'content\'); ?>

        <?php endwhile; ?>

    <?php else : ?>

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

    endif;
    ?>

结束

相关推荐

Search Issue in the theme

如果我的理解没有错的话☻search.php 负责渲染部分和serachform.php 负责触发搜索事件,对吗?示例searchform.php 可能看起来像这样→<form role=\"search\" method=\"get\" class=\"search-form\" action=\"<?php echo home_url( \'/\' ); ?>\"> <label> <span class=\"scree