1

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

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; ?>
4

1 回答 1

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>
于 2012-12-11T15:07:22.850 回答