WordPress搜索问题

时间:2012-12-11 14:51:24

标签: wordpress search http-status-code-404

我已经研究过这个问题,但似乎还无法弄清楚为什么我的搜索功能不适用于我正在研究的主题。下面是我的search.php和searchform.php文件的代码。搜索文件几乎没有从样板,空白的WordPress主题修改。当我搜索任何内容时,它会返回404错误。我已经研究过搜索返回404的搜索结果仍然无法找到解决方案。打击是我的代码,任何帮助将不胜感激。

searchform.php ----------------------------------

<form action="<?php bloginfo('siteurl'); ?>" id="searchform" method="get">
        <label for="search"><object data='<?php bloginfo('template_directory');?    >/images/input-search.svg'>
        <img src='<?php bloginfo('template_directory');?>/images/input-search.png'>
        </object></label>
        <input type="search" name="search" />
</form>

的search.php ---------------------------------------

<?php get_header(); ?>

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

    <h2>Search Results</h2>

    <?php include (TEMPLATEPATH . '/inc/nav.php' ); ?>

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

        <div <?php post_class() ?> id="post-<?php the_ID(); ?>">

            <h2><?php the_title(); ?></h2>

            <?php include (TEMPLATEPATH . '/inc/meta.php' ); ?>

            <div class="entry">

                <?php the_excerpt(); ?>

            </div>

        </div>

    <?php endwhile; ?>

    <?php include (TEMPLATEPATH . '/inc/nav.php' ); ?>

<?php else : ?>

    <h2>No posts found.</h2>

<?php endif; ?>

1 个答案:

答案 0 :(得分:0)

您需要确保在您的functions.php文件中启用了搜索表单,如下所示:

 // ENABLES SEARCH FORM STUFF
 function my_search_form( $form ) {

$form = '<form role="search" method="get" id="searchform" action="' . home_url( '/' ) . '" >
<div><label class="screen-reader-text" for="s">' . __('Search for:') . '</label>
<input type="text" value="' . get_search_query() . '" name="s" id="s" />
<input type="submit" id="searchsubmit" value="'. esc_attr__('Search') .'" />
</div>
</form>';

return $form;

}

 // ENABLES SEARCH FORM
 add_filter( 'get_search_form', 'my_search_form' );

这是我在主题中使用的代码。然后,这将在我的搜索表单中调用:

 <?php get_search_form(); ?>

这是我的searchform.php

    <form method="get" id="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>">
     <label for="s" class="assistive-text"><?php _e( 'Search' ); ?></label>
     <input type="text" class="field" name="s" id="s" placeholder="<?php esc_attr_e( 'Search' ); ?>" />
     <input type="submit" class="submit" name="submit" id="searchsubmit" value="<?php esc_attr_e( 'Search' ); ?>" />
    </form>